在表单提交结果后,使用 PHP 代码打开新窗口

3

这是我一直在努力编写的脚本,它可以在打开时整合用户名和密码。

<?php

$name = $_POST['name']; // contain name of person
$pass = $_POST['pass']; // Email address of sender 
$link = window.open(https://secure.brosix.com/webclient/?nid=4444&user=$name&pass=$pass&hideparams=1 'width=710,height=555,left=160,top=170');

echo $link;

?>

我这样做对吗,我想在用户提交表单后打开一个弹出窗口到php代码,但总是出现错误。


你是在 script 标签内输出 JavaScript 代码吗? - Jared
仍然得到相同的结果,它会打开另一个选项卡并显示“window.open ......170)”作为文本,即使使用脚本标记。 - Link
4个回答

8
将您的代码更改为以下内容。
<?php

$name = $_POST['name']; // contain name of person
$pass = $_POST['pass']; // Email address of sender 
$link = "<script>window.open('https://secure.brosix.com/webclient/?    nid=4510&user=$name&pass=$pass&hideparams=1', 'width=710,height=555,left=160,top=170')</script>";

echo $link;

?>

附注

您可以考虑使用Fancybox,通过iframes在弹出窗口中加载整个网页。还有其他选项,随意探索!


1
当然,如果您打开的窗口不是直接由用户操作引起的,那么您可能会被弹出窗口拦截器所阻止。 - temporalslide
不打开新窗口,直接在浏览器中显示此内容:“window.open('https://secure.brosix.com/webclient/?nid=4510&user=user&pass=pass&hideparams=1', 'width=710,height=555,left=160,top=170')”。 - Link
OP在谈论一些错误。我的解决方案将消除这个错误。如果担心弹出窗口阻止程序,则可以使用css创建Models,就像Twitter Bootstrap一样。 - Deepak
@Link 在<script>中有一个拼写错误,它被拼写成了<scipt>。现在应该可以工作了。但正如@Cody所说,它被弹出窗口拦截器阻止了!你需要找到另一种解决方法来绕过它。 - Deepak
没问题!很酷!我会在集成到我的网站时通知你! - Link
显示剩余3条评论

2

你忘记在$link的值周围加上引号和 <a> 标签。

$link = "<script>window.open(\"https://secure.brosix.com/webclient/?nid=4444&user=$name&pass=$pass&hideparams=1width=710,height=555,left=160,top=170'\")</script>";

仍然是相同的结果,它会打开另一个标签并将“window.open……170)”显示为文本。 - Link

0

你不必使用 PHP,只需创建具有特定 ID 的提交按钮,然后告诉 jQuery 在提交时触发新标签页。

<form id="itemreport_new" type="post" action="">
          <input id="submit2" type="submit" value="show"  target=_blank   />
</form>

    $(document).ready(function () {


        $('#submit2').click(function() {
                 $('#itemreport_new').attr('target','_blank');
        });
    });

-2
<?php
echo "<h1>Hello, PHP!</h1>";
$name = $_POST['name']; // CONTAIN NAME OF PERSON
$pass = $_POST['pass']; // ANY DETAIL OF PERSON
$link = "<script>window.open('https://google.co.in')</script>";
echo $link;

你从未在链接中使用变量,因此它没有解释任何内容。应该像这样: $link = 'https://google.co.in' . '?name='. $name.'&pass='.$pass;. 然后: ?><script> window.open('<?php echo $link;?>'); </script> <?php - Debbie Kurth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接