发布HTML表单后重定向

时间:2012-08-23 13:03:38

标签: php javascript redirect post

在发布HTML表单后,是否有重定向用户?

我有一个看起来像这样的表格

 <form action="/URL/" method="post">
     <input type="radio" name="answer" value="W" />W<br />
     <input type="radio" name="answer" value="X" />X<br />
     <input type="radio" name="answer" value="Y" />Y<br />
     <input type="radio" name="answer" value="Z" />Z<br />
     <input type="submit" />
 </form>

我是否可以在点击提交按钮后将用户重定向到新页面?我找到了一些javascript但是这似乎阻止了帖子的工作:S

干杯!

5 个答案:

答案 0 :(得分:6)

如果您使用的是PHP,请在服务器上执行:

if( isset( $_POST['answer'])) {
    header( 'Location: http://www.example.com/newurl');
    exit();
}

请注意,您应该在header()来电中使用完整网址,并且在这种情况下,您可能希望exit()致电header()

答案 1 :(得分:2)

您可以使用简单的php header('yourlocation.php');将其从表单移开。

即使您的header()位于php文件的顶部,您的表单操作指向的PHP仍将继续执行。

标题重定向将负责用户点击刷新 - 它已经将它们移动到发送表单数据的位置,因此即使它们刷新,它也只会在没有任何表单提交的情况下再次打开页面。

一个例子是fololows:

<?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,他们可以根据自己的喜好进行垃圾邮件刷新,但所有处理工作都已完成。它不会重新发送信息(或再次处理其付款或其他任何内容)。

答案 2 :(得分:2)

是的,请使用重定向标头:

header("Location: http://new.location.com/w00t");

必须在发送任何输出之前调用它。

请注意,在标题调用之后仍然会被执行!因此,您之后需要die()exit()以防止意外结果。

答案 3 :(得分:1)

您只需指定提交后表格的网址即可。

<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';
});

答案 4 :(得分:0)

是的,只需使用ajax发布数据,然后使用window.location = 'http://xxxx.com'将用户重定向到您选择的位置。 这假设你想要在不使用服务器端位置标题的情况下重定向用户(就像发布的其他标题一样)。