我创建了一个页面,用户可以根据两个日期(如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以及是否有办法解决这个问题。
如果您需要,请提前致谢并随时询问更多详细信息。
您不能通过“POST”传递变量并通过“GET”接收它们。
此外,您不需要将vars放入操作URL,因为在使用方法“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”如何工作的更多信息,请看一下: