Как запомнить значение GET & POST в php? - PullRequest
0 голосов
/ 05 сентября 2018

Пожалуйста, проверьте следующий код:

In filter.php

   <?php
   //Getting the cat_id value 25 from category.php 
   $cat_id = ((isset($_GET['cat']))?sanitize($_GET['cat']):'');
   echo 'Cart id filter page is:'.$cat_id; //25
   ?>
   <form action="FrontPageSearchFilter.php" method="post">
   <input type="hidden" name="cat" value="<?=$cat_id;?>">
   <input type="submit" value="search" class="btn btn-xs btn-primary">
   </form>

In search.php

$cat_id = (($_POST['cat'] != '')?sanitize($_POST['cat']):'');
echo 'Cart id search page is:'.$cat_id;  // 25

Моя проблема в том, что когда я нажимаю на категорию, она дает значение 25 в файле filter.php

Но когда я нажимаю кнопку отправки, она забывает значение и передает правильное значение cat_id в search.php, т.е.: 25, но в filter.php значение cat_id становится нулевым после кнопки отправки.

Здесь я хочу запомнить значение даже после нажатия кнопки отправки, пока категория не изменится.

Пожалуйста, предложите мне, что я делаю не так. Спасибо.

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

проблема может быть с функцией очистки. Попробуйте использовать другой?

filter.php

< ? php
//Getting the cat_id value 25 from category.php 
$cat_id = $_GET['cat'] + 0;
echo 'Cart id filter page is:'.$cat_id; //25
?>
<form action="search.php" method="post">
<input type="hidden" name="cat" value="<?=$cat_id;?>">
<input type="submit" value="search" class="btn btn-xs btn-primary">
</form>

search.php

< ? 
$cat_id = $_POST['cat'] + 0;
echo 'Cart id search page is:'.$cat_id;  // 25    
?>

Если вы уверены, что вы получите только числа в $ _GET ['cat'] $ _POST ['cat], не имеет значения, положительное или отрицательное число, я хотел бы предложить вам использовать трюк PHP, например: $ cat = $ _GET ['cat'] + 0;
но будьте внимательны, чтобы отключить все предупреждения в php.ini Это более удобный трюк, он дает вам инициализацию переменной = 0, поэтому вы можете проверить это по типу:

if ($cat===0) echo 'Sorry, first select the category.'; 

или

if ($cat===0 and not isset($_GET['cat'])) ShowSelectCategorySidebar();

надеюсь, что это было полезно.

0 голосов
/ 05 сентября 2018

LocalStorage Вы также можете использовать более современные методы, такие как localStorage.

//First Grab the value of the form before it submits
var yourObject = $('#your-form').serializeArray();

//Stringify your object since that is how localstorage will save the value
localStorage['variablename'] = JSON.stringify(yourObject)

//Then retrieve that information which is a string and parse it to JS object so you could put those values in the default form.
JSON.parse(localStorage['yourObject']);

Каждый раз, когда пользователь отправляет те предыдущие значения, которые он ввел, он может присутствовать там, пока вам не придется возиться с любой из ваших форм отправки PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...