张贴HTML表单后重定向


Redirect after posting a HTML form

发布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'将用户重定向到您选择的位置。这是假设您想要重定向用户而不使用服务器端位置标头(就像其他发布的一样)。