PHP hack - 在提交表单时打开两个网站

时间:2011-05-09 22:00:50

标签: php forms url modx

有人在我们的网站上填写表格并点击提交后,他将被定向到目标网页。我想更改该流程,以便在提交时(1)URL1作为新窗口打开; (2)用户从当前表单页面重定向到URL2。

你能帮忙吗?

当前代码段 -

if(! isset($RedirectOnSuccess))
    $RedirectOnSuccess = 'oldURL';

我是一个技术新手,所以需要你的帮助将它拼凑在一起。我正在使用MODx,网页本身用以下内容调用php脚本 - [!FORM_SNIPPET? &安培; RedirectOnSuccess = OLDURL !]

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

这可能取决于弹出窗口的上下文,但您可能会考虑一些侵入性较小且容易出现广告拦截的内容,例如页面中的lightbox或其他基于ajax的显示工具。您可以通过提交按钮上的点击事件触发灯箱,使用它显示您的消息,然后在关闭或确认时提交表单。

避免在查看表单结果页面时依赖于javascript的解决方案,因为某些(不常见的)用户可能会禁用它。如果它是如上所述实现的,这样的用户会错过你的弹出窗口,但表格仍然可以通过。

您可以使用jQuery实现此功能,而无需修改MODx用于生成表单的php代码,而是通过将javascript放入xhtml标头中,将click事件附加到表单的提交按钮。例如:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    <script src="/colorbox/jquery.colorbox.js"></script>
    <script type="javascript">
    $("#FormID.input[type=submit]").click(function(e) {
      /* prevent form from submitting */
      e.preventDefault();
      e.stopPropagation();

      /* on colorbox close, submit form */
      $(document).bind('cbox_close', function(){
        e.submit(); // submit the form on close
      });

      /* open the colorbox */
      .colorbox({href:"http://example.com/url1"});
    });
    </script>

我在这里使用ColorBox,但同样的想法应该适用于其他灯箱替代方案。我没有对浏览器进行测试,因此请务必根据需要进行测试和调整。

答案 2 :(得分:1)

鉴于弹出窗口阻止程序存在问题,最好的办法是在表单上传中使用HTML定位新窗口。

<form target="_blank">

然后使用JavaScript(可能通过弹出窗口中的opener.location.href),您可以将主窗口重定向到另一个URL。