【问题标题】:How to access value of multiselect with an array?如何使用数组访问多选的值?
【发布时间】:2012-11-07 11:27:12
【问题描述】:

我有多个选择字段:

<select name="cars[]" id="cars" multiple="multiple">
     <option value="yellow">Yellow</option>
     <option value="black">Black</option>
     [..]
</select>

还有这个:

<select name="cars[]" id="cars" multiple="multiple">
     <option value="audi">Audi</option>
     <option value="volk">Volkswagen</option>
     [..]
</select>

当我选择一个随机选项并提交表单时,在$_POST 上执行print_r 输出是:

[group] => Array
(
    [0] => audi
    [1] => volk
    [2] => black
)

我现在想访问颜色(在这种情况下,它将是数组中的键号2),但问题是当我选择其他字段时它可能会改变,例如。我选择了一个汽车品牌和一种颜色......然后它看起来像:

[group] => Array
(
    [0] => audi
    [1] => yellow
)

所以问题是:有没有办法始终访问选定的汽车颜色和汽车品牌?如果能分开就好了,但不是,而且数组键是可变的。

【问题讨论】:

  • 请为您的问题提供更多详细信息。你希望PHP如何接收数据?

标签: php arrays forms input multi-select


【解决方案1】:

只需使用不同的名称(+ 重复的id 是非法的,可能会导致问题)

<select name="cars_type[]" id="cars_type" multiple="multiple">
...
<select name="cars_color[]" id="cars_color" multiple="multiple">

【讨论】:

  • 它必须是一个名字,因为我需要在 PHP 和 JS 中验证它:/
  • 我认为这里没有问题。按应有的方式分别验证它们,因为它们是不同的值集。在服务器端获得数据后,您始终可以重新格式化数据。
【解决方案2】:

您不必为您的选择使用相同的 id。将它们命名为 cars_namescars_colors,您将拥有 2 个单独的数组。

【讨论】:

    猜你喜欢
    • 2012-12-07
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    • 2014-12-28
    • 1970-01-01
    相关资源
    最近更新 更多