【问题标题】:Adding multiple html checkboxes with the same name to URL using $_GET使用 $_GET 将多个具有相同名称的 html 复选框添加到 URL
【发布时间】:2011-12-20 09:36:46
【问题描述】:

我的网站有一个搜索表单。搜索表单包括一个类别部分,用户可以在其中从不同类别中选择项目,所有这些都是复选框。它们都具有相同的名称,因此我可以使用一些 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&catID%5B%5D=11&catID%5B%5D=12”

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

【问题讨论】:

  • 如果你不以任何方式转换url,当你var_dump($_GET)时PHP会给你什么?
  • catID%5B%5D=10&catID%5B%5D=11&catID%5B%5D=12 是正确的格式。它可以让您在提交时从 $_GET 读取数组

标签: php html forms url


【解决方案1】:

这对于 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) {
        ...
     }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多