我创建了一个页面,用户可以在该页面上基于两个日期(例如01/01/2019和04/04/2019)获得一些信息。用户选择两个日期,这些日期都发送到我的sql查询中。
我的问题是我需要按两次提交按钮以更新日期。
从我所看到的来看,代码从上次提交而不是当前提交中获取日期。例如,如果我将日期之一从01/01/2019更改为01/02/2019,它将仍然显示以01/01/2019作为日期的信息。我知道这是因为我在代码上添加了一些回显,并且可以看到它正在获取先前的值。
我已经尝试过in php, why input form when submit it takes 2 times pressed的解决方案,但是没有任何效果。
以下是用户输入日期的代码:
<form action="code.php?titulo=Entrada_De_Soja_por_Variedade&codpag=soja&ini=<?php echo $ini ;?>&fin=<?php echo $fin ;?>" method="post">
<input name="ini" id="ini" type="date" value = "<?php echo $ini2 ?>" placeholder="<?php echo $ini ?>" >
<input name="fin" id="fin" type="date" value = "<?php echo $fin2 ?>" placeholder="<?php echo $fin ?>">
<input style="width: 120px; height: 30px; font-size:14px;" type="submit" value="Search" />
</form>
$ ini是初始日期,$ fin是最终日期。
在同一code.php上,我使用:
$ini = $_POST['ini'];
$fin = $_POST['fin'];
在sql查询中,我使用:
$ini = $_GET['ini'];
$fin = $_GET['fin'];
我需要知道的是,如果我对$ _POST和$ _GET使用的策略正确,并且是否有解决此问题的方法。
在此先感谢您,如果需要,可以随时询问更多详细信息。
答案 0 :(得分:1)
您不能通过“ POST”传递变量,而不能通过“ GET”接收变量。
此外,您无需将变量放入操作网址,因为使用方法“ GET”时,变量会自动附加。
如果您希望在URL中看到日期(以共享链接),则可以在表单页面上使用它:
<form action="code.php" method="get">
<input name="ini" id="ini" type="date" value="<?php echo $_GET['ini']; ?>" placeholder="<?php echo $ini; ?>" >
<input name="fin" id="fin" type="date" value="<?php echo $_GET['fin']; ?>" placeholder="<?php echo $fin; ?>">
<input style="width: 120px; height: 30px; font-size:14px;" type="submit" value="Search" />
有关“ GET”和“ POST”如何工作的更多信息,请查看以下内容: