我正在尝试启动在线服务。用户填写表单提交,然后转到另一页。在第二页,他们选择一项服务。从那个页面,他们转到第3页。我想在3页中这样做,以鼓励用户完成序列(他们已经按时间顺序投入第2页)。
我怎样才能更好地将数据从第1页发送到第3页? 到目前为止,我只是将数据从第1页发送到服务器端php脚本,将该数据发送到第2页,然后重复该过程,直到第3页。是否有更合适的方法来实现此目的?
表单提交的代码是
<?php
$varRedirect = "order.php";
if(isset($_POST["submit"]) )
{
$var1 = $_POST["element_1"];
$var2 = $_POST["element_1"];
$var3 = $_POST["element_1"];
$var4 = $_POST["element_1"];
$var5 = $_POST["element_1"];
$var6 = $_POST["element_1"];
$var7 = $_POST["element_1"];
$var8 = $_POST["element_1"];
$var9 = $_POST["element_1"];
}
/* begin switch logic */
redirect($varRedirect."?var1=".$var1."&var2=".$var2."&var3=".$var3."&var4=".$var4."&var5=".$var5."&var6=".$var6."&var7=".$var7."&var8=".$var8."&var9=".$var9);
/* functions */
function redirect($url, $statusCode = 303)
{
header('location: ' .$url, true, $statusCode);
die();
}
?>
答案 0 :(得分:1)
推荐使用会话。在那里,您可以通过页面存储用户的数据。 http://php.net/manual/en/features.sessions.php
答案 1 :(得分:1)
如果您更喜欢重定向,则可以使用http_build_query
$params = $_POST;
unset($params['submit']); // exclude 'submit' if you don't need it
$query = http_build_query($parms);
redirect($varRedirect."?$query);
检查不好,但你可以看到这个想法。
答案 2 :(得分:1)
哇!除非这是一个搜索表单,否则不要使用get so send表单!在页面之间使用POST发送数据!
现在你的解决方案很少:
?some_id=332
,并使用?some_id=332
将每个下一个表单提交到数据库。这样,您不需要在表单之间传递数据。您可以通过?some_id=332
始终从数据库中获取它。此外,用户可以这样进行刷新,下一个/上一页编辑。您只需要检查网址中是否提供了?some_id=332
,如果是,则从数据库加载数据。