为什么输入需要两次更新?

时间:2019-04-04 13:11:37

标签: php forms post submit

我创建了一个页面,用户可以在该页面上基于两个日期(例如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使用的策略正确,并且是否有解决此问题的方法。

在此先感谢您,如果需要,可以随时询问更多详细信息。

1 个答案:

答案 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”如何工作的更多信息,请查看以下内容:

https://www.tutorialspoint.com/php/php_get_post.htm