请检查以下代码:
在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的值变为零。
在这里,即使按下提交按钮直到类别保持不变,我也要记住该值。
请告诉我我做错了什么。 谢谢。
答案 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();
希望它很有用。