有人在我们的网站上填写表格并点击提交后,他将被定向到目标网页。我想更改该流程,以便在提交时(1)URL1作为新窗口打开; (2)用户从当前表单页面重定向到URL2。
你能帮忙吗?
当前代码段 -
if(! isset($RedirectOnSuccess))
$RedirectOnSuccess = 'oldURL';
我是一个技术新手,所以需要你的帮助将它拼凑在一起。我正在使用MODx,网页本身用以下内容调用php脚本 - [!FORM_SNIPPET? &安培; RedirectOnSuccess = OLDURL !]
答案 0 :(得分:2)
用javascript做。 http://www.tizag.com/javascriptT/javascriptredirect.php& http://www.pageresource.com/jscript/jwinopen.htm
答案 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。