我有一个分页的名称和年龄表,我想通过"name“字段进行筛选。为此,我有一个名为"name“的输入。
<input type="text" name="name" value="<?php echo $_SESSION['name']; ?>">在页面之间切换时,为了不以以下形式在url中携带过滤器:
table.php?name=John&page=3我将$_GET‘’name‘保存到$_ session’‘name’,然后将该会话应用于SQL查询字符串。
$_GET['name'] ? $_SESSION['name']=$_GET['name'] : null;我想通过让用户从输入中删除内容并按enter来清除过滤器。我试过:
if($_GET['name']=="")
unset($_SESSION['name']);问题是,当我切换页面并使用链接时:
table.php?page=7它重置$_SESSION‘’name‘,并将我带回到未筛选表的选定页面。
对我如何解决这个问题有什么想法吗?
在此之前,非常感谢您。
发布于 2015-12-09 15:23:33
我设法通过重新调整来解决这个问题。
if($_GET['name']=="")
unset($_SESSION['name']);使用
if(isset($_GET['name']) and $_GET['name']=="")
unset($_SESSION['name']);isset()造成了所有的不同。现在,它将正确地检查是否在$_GET‘’name‘中传递一个空值,并相应地进行if。
非常感谢你们所有的帮助。
发布于 2015-12-09 14:24:11
我认为你的问题是在你的三元操作中。一开始,如果你不理解他的逻辑,就不要使用这个操作。三值操作可以减少代码的数量,但同时也会使您非常困惑。所以:
$_SESSION['name'] = $_GET['name'] ? $_GET['name'] : null; https://stackoverflow.com/questions/34180377
复制相似问题