发布PHP表单后,打开带有格式URL的浏览器窗口
所以问题来了。我有一个收集一些数据的php表单,在发布数据后,解析了一个URL。构造完这个URL后,我想用这个新构造的URL为用户打开一个新的浏览器窗口 我如何才能真正做到这一点?这是不是只有javascript才能做到?如果是的话。。。怎么做发布PHP表单后,打开带有格式URL的浏览器窗口,php,javascript,forms,Php,Javascript,Forms,所以问题来了。我有一个收集一些数据的php表单,在发布数据后,解析了一个URL。构造完这个URL后,我想用这个新构造的URL为用户打开一个新的浏览器窗口 我如何才能真正做到这一点?这是不是只有javascript才能做到?如果是的话。。。怎么做 我已经准备好了代码,并且在发布表单后测试了构建URL的工作原理,现在只需使用URL打开一个新窗口即可。您可以使用Js window.open(“http://www.newurl.com“,“我的窗口”);有关更多详细信息,请查看此链接。您可以使用HTT
我已经准备好了代码,并且在发布表单后测试了构建URL的工作原理,现在只需使用URL打开一个新窗口即可。您可以使用Js window.open(“http://www.newurl.com“,“我的窗口”);有关更多详细信息,请查看此链接。您可以使用HTTP标头将当前窗口发送到该URL:
<?php
//your code that builds $url
header("Location: $url");
?>
如果必须打开第二个新窗口,则必须使用JavaScript。
<html>
<head>
<script type="text/javascript">
function newWindow() {
window.open("http://www.newurl.com", "", "width=400,height=500,top=50,left=280,
resizable,toolbar,scrollbars,menubar,");
}
</script>
</head>
<body>
<input type=submit name="submit" value="Preview" onClick="newWindow();">
</body>
</html>
函数newWindow(){
窗口打开(“http://www.newurl.com宽度=400,高度=500,顶部=50,左侧=280,
可调整大小,工具栏,滚动条,菜单栏,”;
}
您不能在同一会话中使用php打开新窗口,只有javascript能够这样做,可能有两种情况
下面是一些HTML示例,包括内联JS()。我们需要在提交表单时打开一个新窗口,以避免浏览器的弹出窗口阻止程序:
<form
method="POST"
action="http://www.cs.tut.fi/cgi-bin/run/~jkorpela/echo.cgi"
onsubmit="open('',this.target=new Date().getTime(),'menubar=yes,location=yes,resizable=yes,scrollbars=yes,width=800,height=600')">
<!-- Text boxes, etc. go here --->
<input type="submit" value="Submit">
</form>
在PHP脚本中,您可以使用(前面没有空格或其他字符):
弹出窗口阻止程序可能不喜欢这种行为。我只想适当地回显带有目标集的超链接。我同意@Novikov。打开一个新窗口会惹恼你的用户。为什么不使用
标题执行重定向?另外,新窗口的用途是什么?客户机要求出现一个新窗口,因为它是一个完全重定向。我会提供一个超链接作为替代,但弹出窗口必须出现。另外,是否有一种方法可以在发布表单后替换当前页面?就像在同一个窗口中重定向到新的URL一样。我尝试使用header,但它给我一个错误,即已经设置了header。客户端要求表单通过get使用这个带有参数的新页面,这就是为什么在解析表单数据之后,我构建了要重定向的URL。我尝试通过php脚本使用它,但没有成功,您介意发布一个PHP实现示例吗?这是我每次尝试时都会遇到的错误:警告:无法修改标头信息-已由发送的标头在发送HTTP标头之前,您不能有任何输出。如果要重定向,则不能回显任何内容,包括
<?php
// Your code that determines the URL; don't send any output from it!
header("Location: $url");
<script>
location.replace("<?php echo $url; ?>");
</script>