我正在构建一个Web应用程序,我需要同时使用GET和POST变量。 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>
';
}
这没关系,但表单需要表现为重定向,因此在回显之后,需要自动提交。
我怎样才能做到这一点?
如果可能的话,我也愿意接受以其他方式实现此功能的建议。
答案 0 :(得分:0)
使用Javascript可能是这样的:
为表单命名:
if(!isset($_GET["date"])) {
echo '
<form name="MyForm" method="POST" action="'.$_SERVER["PHP_SELFT"].'?date='.date("Y-m-d").'"></form>
';
}
然后您可以使用javascript简单地提交表单,如:
document.MyForm.submit();
答案 1 :(得分:0)
我认为你不需要Javascript:
<form name="MyForm" method="POST" action="<?=$_SERVER["PHP_SELFT"]?>?date='<?=(isset($_GET['date'])) ? $_GET['date'] : date("Y-m-d")?>"></form>
它将日期放在URL中。如果确实设置了$ _GET [&#39; date&#39;],则会将$ _GET [&#39; date&#39;]设置为日期。否则它将给出当前日期。
希望这有帮助! :)