发布HTML表单后,是否有重定向用户的方法?
我有一张看起来像的表格
<form action="/URL/" method="post">
<input type="radio" name="answerswer" value="W" />W<br />
<input type="radio" name="answerswer" value="X" />X<br />
<input type="radio" name="answerswer" value="Y" />Y<br />
<input type="radio" name="answerswer" value="Z" />Z<br />
<input type="submit" />
</form>
在用户单击提交按钮后,我是否可以将其重定向到新页面?我发现了一些javascript,但似乎阻止了帖子的工作:S
干杯!
如果您使用PHP,请在服务器上执行:
if( isset( $_POST['answer'])) {
header( 'Location: http://www.example.com/newurl');
exit();
}
请注意,您应该在header()
调用中使用完整的URL,并且在这种情况下,您可能希望在调用header()
之后使用exit()
。
您可以使用一个简单的php header('yourlocation.php');
将它们从表单中移除。
表单操作所指向的PHP仍将继续执行,即使您的header()位于PHP文件的顶部。
标头重定向将负责用户点击刷新-它已经将他们移动到发送表单数据的点,因此即使他们刷新,它也只会在没有任何表单提交的情况下再次打开页面。
示例如下:
<?php
/* This will give an error. Note the output
* above, which is before the header() call */
// Process Form Data, insert to database, whatever you want... then
header('Location: http://www.example.com/');
?>
然后,用户最终到达wwww.example.com,他们可以随心所欲地进行垃圾邮件刷新,但所有的处理都已经完成。它不会重新发送信息(或再次处理他们的付款或其他任何事情)。
是的,使用重定向头:
header("Location: http://new.location.com/w00t");
在发送任何输出之前,必须调用此函数。
请注意,之后的所有头调用仍将执行!因此,之后您需要die()
或exit()
来防止出现意外结果。
您只需指定表单提交后的URL即可。
<form action="http://localhost/redirected.php" method="post">
您可以使用PHP检查表单是否已提交,然后重定向:
if (isset($_POST['answer']))
header('Location: redirect.php');
您可以使用javascript/jquery来实现这一点。
$('#submit_button').click(function () {
// do everything with variables
window.location = 'redirect.php';
});
是的,只需使用ajax发布数据,然后使用window.location = 'http://xxxx.com'
将用户重定向到您选择的位置。这是假设您想要重定向用户而不使用服务器端位置标头(就像其他发布的一样)。