立即提交表单
问题描述:
我正在构建一个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>
';
}
这将是美好的,但形式需要表现为重定向,所以呼应出来后,它需要被自动提交。
我该如何做到这一点?
我也乐于接受建议,如果可能以其他方式实现此功能。
答
使用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();
答
你不” t需要Javascript在我看来:
<form name="MyForm" method="POST" action="<?=$_SERVER["PHP_SELFT"]?>?date='<?=(isset($_GET['date'])) ? $_GET['date'] : date("Y-m-d")?>"></form>
它将日期放入URL中。如果确实设置了$ _GET ['date'],它会将$ _GET ['date']设置为日期。否则它会给出当前日期。
希望这会有所帮助! :)
javascript/jquery不是一个选项? – twain 2014-11-25 11:04:52
如果没有其他选择,那么它必须是,但我想最大限度地减少客户端代码,因为它已经是JS沉重了。 – PeterInvincible 2014-11-25 11:11:04
不幸的是,没有其他选择,至少不是我所知道的:/ – twain 2014-11-25 11:17:57