我有一个名称和年龄的分页表,我希望通过“名称”字段进行过滤。 为此,我有一个名为“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']并将我带回未经过滤的表格的选定页面。
关于如何解决这个问题的任何想法?
非常感谢提前。
答案 0 :(得分:1)
我认为你的问题出在你的三元手术中。如果你不了解他的逻辑,首先不要使用这个操作。三元操作可以减少代码量,但同时可能会让您非常困惑。 所以:
$_SESSION['name'] = $_GET['name'] ? $_GET['name'] : null;
答案 1 :(得分:0)
我设法通过重新调整
来解决这个问题if($_GET['name']=="")
unset($_SESSION['name']);
与
if(isset($_GET['name']) and $_GET['name']=="")
unset($_SESSION['name']);
isset()完全不同。 现在它将正确检查$ _GET ['name']中是否传递了空值,并相应地继续使用IF。
非常感谢大家的帮助。