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

问题描述 投票:0回答:1

我创建了一个页面,用户可以根据两个日期(如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以及是否有办法解决这个问题。

如果您需要,请提前致谢并随时询问更多详细信息。

php forms post submit
1个回答
1
投票

您不能通过“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”如何工作的更多信息,请看一下:

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

© www.soinside.com 2019 - 2024. All rights reserved.