首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有$_GET =空($_GET)?

没有$_GET =空($_GET)?
EN

Stack Overflow用户
提问于 2015-12-09 13:46:19
回答 2查看 278关注 0票数 0

我有一个分页的名称和年龄表,我想通过"name“字段进行筛选。为此,我有一个名为"name“的输入。

代码语言:javascript
复制
<input type="text" name="name" value="<?php echo $_SESSION['name']; ?>">

在页面之间切换时,为了不以以下形式在url中携带过滤器:

代码语言:javascript
复制
table.php?name=John&page=3

我将$_GET‘’name‘保存到$_ session’‘name’,然后将该会话应用于SQL查询字符串。

代码语言:javascript
复制
$_GET['name'] ? $_SESSION['name']=$_GET['name'] : null;

我想通过让用户从输入中删除内容并按enter来清除过滤器。我试过:

代码语言:javascript
复制
if($_GET['name']=="")
    unset($_SESSION['name']);

问题是,当我切换页面并使用链接时:

代码语言:javascript
复制
table.php?page=7

它重置$_SESSION‘’name‘,并将我带回到未筛选表的选定页面。

对我如何解决这个问题有什么想法吗?

在此之前,非常感谢您。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-09 15:23:33

我设法通过重新调整来解决这个问题。

代码语言:javascript
复制
if($_GET['name']=="")
    unset($_SESSION['name']);

使用

代码语言:javascript
复制
if(isset($_GET['name']) and $_GET['name']=="")
    unset($_SESSION['name']);

isset()造成了所有的不同。现在,它将正确地检查是否在$_GET‘’name‘中传递一个空值,并相应地进行if。

非常感谢你们所有的帮助。

票数 0
EN

Stack Overflow用户

发布于 2015-12-09 14:24:11

我认为你的问题是在你的三元操作中。一开始,如果你不理解他的逻辑,就不要使用这个操作。三值操作可以减少代码的数量,但同时也会使您非常困惑。所以:

代码语言:javascript
复制
$_SESSION['name'] = $_GET['name'] ? $_GET['name'] : null; 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34180377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档