【问题标题】:comma separated checkbox values逗号分隔的复选框值
【发布时间】:2012-08-02 22:58:45
【问题描述】:

有谁知道如何以逗号分隔的方式输出复选框值? 假设我有 2 个复选框:

  • <input id="filetype_photo" name="type" type="checkbox" value="photo" >
  • <input id="filetype_graphic" name="type" type="checkbox" value="graphic" >

如果我使用 $_GET 检索它们,我会得到以下网址:

  • sitename.com?type=photo&type=graphic 如果两个复选框都被选中,我的目标是获得以下网址:
  • sitename.com?type=photo,graphic

我尝试使用复选框数组将它们重命名为 name[] 并使用以下函数来查看结果:

$type=$_GET['type'];
while (list ($key,$val) = @each ($type)) {
echo $val;
}

但这给了我复选框值,但不能解决 url 问题。此外,网址因更改而变得混乱 type=photo 到 &type%5B%5D=photo

有什么想法吗?

附:我需要在服务器端解决它

【问题讨论】:

    标签: php checkbox get


    【解决方案1】:

    用途:

    <input id="filetype_photo" name="type[]" type="checkbox" value="photo" >
    <input id="filetype_graphic" name="type[]" type="checkbox" value="graphic" >
    

    您的$type=$_GET['type'] 将是一个数组。

    【讨论】:

      【解决方案2】:

      PHP 不能处理具有相同名称的多个参数,除非它们以方括号结尾。如果您想避免使用查询字符串,则需要手动解析查询字符串。

      【讨论】:

        【解决方案3】:

        使用 Javascript 编译以逗号分隔的值字符串并使用 window.location 进行重定向

        【讨论】:

        • 然后对两个复选框使用 name="type[]"。那么 url 应该没问题,并且你的迭代接收数组
        • 迭代工作正常,我从两个名为 name[] 的复选框中接收到值。问题是如何强制表单不将每个复选框的两个值输出到 url 而是输出它们的逗号分隔数组?我考虑过使用隐藏的输入字段并将数组值传递给它的值,但这似乎是不好的做法,而不是真正的解决方案
        • 是的,我明白你的意思。我只是不明白为什么 URL 中的 type[]=photo 对你来说是个问题。我想我同意@Ignacio :)
        猜你喜欢
        • 2022-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-16
        • 2016-01-02
        • 1970-01-01
        • 1970-01-01
        • 2011-07-26
        相关资源
        最近更新 更多