使用$ _GET将多个具有相同名称的html复选框添加到URL

时间:2011-11-02 14:43:52

标签: php html forms url

也许这是一个简单的答案,我只是没有看到它,但无论如何生病了。所以我有一个搜索表单给我的网站。搜索表单包括一个类别部分,用户可以从中选择不同类别的项目,所有这些都是复选框。它们都具有相同的名称,因此我可以使用一些javascript来选择所有并选择无。我需要使用php $ _GET,以便我可以为url添加参数,以便我可以回到用户最初搜索的条件。

HTML:

<input name="catID[]" id="catID_10" type="checkbox" value="10" />
<input name="catID[]" id="catID_11" type="checkbox" value="11" />
<input name="catID[]" id="catID_12" type="checkbox" value="12" />
...

提交from之后的url,实际括号转换为html字符串形式,格式为“catID%5B%5D = 10&amp; catID%5B%5D = 11&amp; catID%5B%5D = 12”

所以我想知道,是否有一些javascript我可以执行,一旦提交表单更改每个复选框的名称,以便它将在URL中格式化,但不会弄乱其他选择所有/选择无功能?< / p>

1 个答案:

答案 0 :(得分:4)

这对于URL中的php样式数组来说是完全正常的。你会发现如果你做print_r($_GET),你会得到类似的东西:

array(
   'catID' => array(
       0 => 10,
       1 => 11,
       2 => 12
   )
   'otherparameter' => 'value'
)

并且可以通过简单的

获取各个复选框值
if (is_array($_GET['catID'])) {
     foreach($_GET['catID'] as $catID) {
        ...
     }
}