【问题标题】:form array of array checkboxes形成数组复选框的数组
【发布时间】:2012-07-03 19:16:07
【问题描述】:

我想创建一个数组,其中包含多个存储复选框结果的数组。

category->subcategory->choice

我不确定这是否可能,但我可能想要这样的东西:

<input type="hidden" name="category[]" />
<input type="checkbox" name="subcat1[]" value="something" />
<input type="checkbox" name="subcat1[]" value="somewhere" />
<input type="checkbox" name="subcat2[]" value="something" />
<input type="checkbox" name="subcat2[]" value="somewhere" />

我希望能够像这样使用 PHP 遍历类别数组循环:

foreach($_POST['category'] as $sub){
    switch($sub){
        case 'subcat1':
            foreach($sub as $val){
                //prepare $val to insert into database X
            }
            break;
        case 'subcat2':
            foreach($sub as $val){
                //prepare $val to insert into database Y
            }
            break;
    }
}

【问题讨论】:

  • 是的,这是可能的,但您的具体问题是什么?

标签: php html multidimensional-array


【解决方案1】:

这比你想象的还要容易:

<input type="checkbox" name="category[subcat1][]" value="something" />
<input type="checkbox" name="category[subcat1][]" value="somewhere" />
<input type="checkbox" name="category[subcat2][]" value="something" />
<input type="checkbox" name="category[subcat2][]" value="somewhere" />

然后:

foreach($_POST['category'] as $subCategoryName) {
    foreach ($subCategoryName as $item) {
        // ...
    }
}

如果您对不同子类别的预期处理方式不相似,最好将它们发布到不同的数组中。

【讨论】:

  • 我认为如果我使用 2D 数组然后使用开关,那么代码会更少,但可以这样做。
猜你喜欢
  • 2018-11-07
  • 2018-11-20
  • 2011-05-29
  • 1970-01-01
  • 2013-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-28
相关资源
最近更新 更多