Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
发布PHP表单后,打开带有格式URL的浏览器窗口_Php_Javascript_Forms - Fatal编程技术网

发布PHP表单后,打开带有格式URL的浏览器窗口

发布PHP表单后,打开带有格式URL的浏览器窗口,php,javascript,forms,Php,Javascript,Forms,所以问题来了。我有一个收集一些数据的php表单,在发布数据后,解析了一个URL。构造完这个URL后,我想用这个新构造的URL为用户打开一个新的浏览器窗口 我如何才能真正做到这一点?这是不是只有javascript才能做到?如果是的话。。。怎么做 我已经准备好了代码,并且在发布表单后测试了构建URL的工作原理,现在只需使用URL打开一个新窗口即可。您可以使用Js window.open(“http://www.newurl.com“,“我的窗口”);有关更多详细信息,请查看此链接。您可以使用HTT

所以问题来了。我有一个收集一些数据的php表单,在发布数据后,解析了一个URL。构造完这个URL后,我想用这个新构造的URL为用户打开一个新的浏览器窗口

我如何才能真正做到这一点?这是不是只有javascript才能做到?如果是的话。。。怎么做


我已经准备好了代码,并且在发布表单后测试了构建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能够这样做,可能有两种情况

  • 使用AJAX请求
  • 重新加载页面并初始化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>