语句=”时取消设置php变量;“全部”;

语句=”时取消设置php变量;“全部”;,php,arrays,unset,Php,Arrays,Unset,当输入在一组RadioBox中不是“全部”时,我尝试取消设置变量。if语句工作正常,工作也很完美,而else语句不工作。有什么想法吗 $profile = $_POST["profile"]; if ($profile != 'all') { $conditions["profile"] = $profile; } else { unset($conditions["profile"]); } 我认为您的$\u POST变量可能未设置。试着这样做: 要么: $profi

当输入在一组RadioBox中不是“全部”时,我尝试取消设置变量。if语句工作正常,工作也很完美,而else语句不工作。有什么想法吗

$profile = $_POST["profile"];

if ($profile != 'all') { 
    $conditions["profile"] = $profile; 
} else { 
    unset($conditions["profile"]);
}

我认为您的$\u POST变量可能未设置。试着这样做:

要么:

$profile = isset($_POST["profile"]) ? $_POST["profile"] : 'all';
或者在else块中:

} else { 

    if(isset($conditions["profile"])) unset($conditions["profile"]);
}

你怎么知道它不起作用。您是否有要与我们共享的错误消息?在您尝试取消设置之前,
unset($profile)
是否确实存在<代码>取消设置($_POST[“profile”])?正如@RiggsFolly所说;在尝试取消设置它之前,请确保它存在
unset(无论存在什么)
。您可以使用不同的单选按钮指定您的配置文件。因此,如果profile=“all”,则必须显示数据库中与您的配置文件匹配的每个配置文件。例如,如果他们选中单选按钮“棕色头发”,则显示的结果会更少(实时更新,不刷新)。但当你重新勾选单选按钮“全部”而不是“棕色头发”时,它仍然只会给出结果,就好像你勾选了“棕色头发”。这是因为在第一次加载页面时,我会从数据库中获取所有信息,但从表单发生更改的那一刻起,我会进行搜索查询。这不起作用,而且我很确定它已经设置好了。因为一开始我在表格上做了一个“全取”,然后它显示了所有的结果。从表单发生变化的那一刻起,我就使用搜索API。因此,首先检查“全部”。getAll提供所有结果。然后,当您将“全部”更改为“棕色头发”(例如)。它工作得很好,它提供了与“棕色头发”配置文件匹配的所有配置文件。但当我想再次检查“全部”时,它仍然会给出结果,就好像检查了“棕色头发”。这就是我遇到的问题,因为似乎您在重写表单重新提交事件上的$_POST[“profile”]值时遇到了问题。在没有看到代码的情况下,它是在黑暗中拍摄的,但是您是否尝试过一些调试,以了解为什么在重新提交后旧值会在POST变量中徘徊?你能发布更多的代码吗?