Почему ввод занимает два раза для обновления? - PullRequest
0 голосов
/ 04 апреля 2019

Я создал страницу, где пользователь получает некоторую информацию на основе двух дат (например, 01/01/2019 и 04/04/2019). Пользователь выбирает обе даты, которые отправляются на мой SQL-запрос.

Моя проблема в том, что мне нужно дважды нажать кнопку отправки, чтобы обновить даты.

Из того, что я мог видеть, код получает даты предыдущей отправки, а не текущей. Например, если я изменю одну из дат с 01.01.2009 на 01.02.2009, она все равно будет отображать информацию с 01.01.2009 в качестве даты. Я знаю это, потому что я добавляю эхо в код и вижу, что он получает предыдущее значение.

Я уже пробовал решения из в php, почему при вводе формы при вводе требуется 2 раза нажать , но ничего не получилось.

Вот код, в который пользователь вводит даты:

 <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 Ответ

1 голос
/ 04 апреля 2019

Вы не можете передавать переменные через "POST" и получать их через "GET".

Кроме того, вам не нужно помещать переменные в 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

...