【发布时间】:2021-11-01 02:39:20
【问题描述】:
我有一个简单的 GET 表单,用户可以提交它以在我的 WordPress 网站上搜索帖子(房地产)。
我的 HTML 搜索表单看起来有点像这样:
<form method="get" action="estates">
<select name="city[]" multiple>
<option value="">Select an option</option>
<option value="city-1">City 1</option>
<option value="city-2">City 2</option>
</select>
<select name="purpose[]" multiple>
<option value="1">For sale</option>
<option value="2">For rent</option>
</select>
<input type="submit" value="Search">
</form>
假设用户没有为城市选择其他选项,而是选择了值为“1”的用途。 ' purpose' 值已正确添加到 URL,并且 'city' 字段的值为 ""。
生成的 URL 如下所示:mysite.com/estates/?city%5B%5D=&purpose%5B%5D=1
现在问题出在此示例中的“城市”字段。因为我使用“城市”的默认选项,值为“”,所以它被添加到 URL 但没有值。
但是,当我在我的帖子页面上进行 PHP 检查并构建搜索查询时,empty($GET["city"]) 未返回 true,并且我的查询无法正常工作。
我尝试了很多东西,包括 $GET["city"] == "" 和 array_key_exists('city', $_GET),但我的 PHP 代码总是说 $GET["city"] 不是空的,应该添加到我的搜索查询中,这会导致查询结果错误。
是我遗漏了什么,还是有其他方法可以检查是否为此参数设置了值?
当我执行print_r($_GET['city']) 时,我得到以下返回:
Array ( [0] => )
【问题讨论】: