1

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

你能帮我吗?

当前代码片段 -

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

我是一个技术新手,所以需要你的帮助来拼凑它。我正在使用 MODx 并且网页本身使用以下命令调用 php 脚本 - [!FORM_SNIPPET? &RedirectOnSuccess=oldURL !]

4

3 回答 3

2

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

避免查看表单结果页面依赖于 javascript 的解决方案,因为某些(不常见的)用户可能会禁用它。如果按上述方式实施,这些用户会错过您的弹出窗口,但表单仍会通过。

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

    <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,但同样的想法应该适用于其他灯箱替代品。我没有在浏览器中对此进行测试,因此请务必根据需要进行测试和调整。

于 2011-05-09T23:24:30.347 回答
2

用javascript来做。http://www.tizag.com/javascriptT/javascriptredirect.php & http://www.pageresource.com/jscript/jwinopen.htm

于 2011-05-09T22:04:50.693 回答
1

鉴于弹出窗口拦截器的问题,您最好的选择是在表单上传时定位一个带有 HTML 的新窗口。

<form target="_blank">

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

于 2011-05-09T22:06:01.783 回答