请检查以下代码:
在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
但是当我单击submit按钮时,它忘记了这个值,并将正确的值cat_id传递给search.php,例如: 25,但是在filter.php中,在submit按钮之后,cat_id值变为零。
在这里,我想记住这个值,即使在按下submit按钮之后,直到类别不变。
请告诉我我做错了什么。谢谢。
发布于 2018-09-05 06:38:18
此问题可能与sanitize函数有关。试着用另一个吗?
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();
希望它是有用的。
https://stackoverflow.com/questions/52174586
复制相似问题