如何记住php中的GET和POST值?

时间:2018-09-04 22:08:04

标签: php laravel

请检查以下代码:

在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>

在search.php中

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

我的问题是,当我单击类别时,它在filter.php中给出的值为25

但是,当我单击“提交”按钮时,它会忘记该值,并将正确的值cat_id传递给search.php,例如:25,但在filter.php中,提交按钮后cat_id的值变为零。

在这里,即使按下提交按钮直到类别保持不变,我也要记住该值。

请告诉我我做错了什么。 谢谢。

2 个答案:

答案 0 :(得分:0)

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提交表单。

答案 1 :(得分:0)

问题可能出在清理功能上。尝试使用另一个?

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();

希望它很有用。