【发布时间】:2014-11-25 10:49:58
【问题描述】:
我正在构建一个同时需要 GET 和 POST 变量的 Web 应用程序。 get 变量将保存日期,并根据该更改列出的订单。 POST 变量用于将表单数据提交到数据库(我在同一页面上有输出和输入)。
由于一次只能使用一种 HTTP 方法,我认为我需要以以下方式使用 POST 才能读取这两个变量:
<form method="POST" action="index.php?date=foo"></form>
如果没有设置日期,这就是我将日期设置为今天的日期:
if(!isset($_GET["date"])) {
header("location: index.php?date=". date('Y-m-d'));
}
..但是这个重定向使用 GET,所以这不是一个选项。
我尝试了以下方法:
if(!isset($_GET["date"])) {
echo '
<form method="POST" action="'.$_SERVER["PHP_SELFT"].'?date='.date("Y-m-d").'"></form>
';
}
这样可以,但是表单需要表现得像重定向,所以在回显之后,它需要自动提交。
我怎样才能做到这一点?
如果可能的话,我也愿意接受以其他方式实现此功能的建议。
【问题讨论】:
-
javascript / jquery 不是一个选项?
-
如果别无选择,那就必须如此,但我想尽量减少客户端代码,因为它已经是 JS-heavy。
-
不幸的是没有其他选择,至少我不知道:/
-
对不起,我不明白这里的动作流程。如果我必须这样做,我会根据 $_GET-Params 准备表单,然后让用户填写表单并使用 $_POST-Request 将其提交到将重新使用旧 $_GET 的 URL - 变量(或者,将 $_GET-Stuff 写入隐藏的表单域)。所以我不完全理解这个问题......(为什么表单应该“自动提交?”用户应该触发......)
标签: php http redirect post get