【问题标题】:Checkbox array in form array表单数组中的复选框数组
【发布时间】:2013-02-17 08:03:52
【问题描述】:

我正在尝试获取表单数组中的复选框数组。我试图先将数据作为表单数组获取,然后再获取数组中的复选框数组。

<form name="preview" id="post" action="" method="post">
    <input type="hidden" name="category[$id]" />
    <input type="checkbox" name="subcat[]" value="something" />
    <input type="checkbox" name="subcat[]" value="somewhere" />
    <input type="checkbox" name="subcat[]" value="something" />
    <input type="checkbox" name="subcat[]" value="somewhere" />

    <input type="hidden" name="category[$id]" />
    <input type="checkbox" name="subcat[]" value="something" />
    <input type="checkbox" name="subcat[]" value="somewhere" />
    <input type="checkbox" name="subcat[]" value="something" />
    <input type="checkbox" name="subcat[]" value="somewhere" />
    <input class="button-primary" name="submit_preview" value="Submit Selected Tees" type="submit">
</form>
if (isset($_POST['submit_preview'])) {
    foreach ( $_POST[ 'category' ] as $id ) {
        foreach ( $_POST[ 'subcat' ][$id] as $subcat ) {
             echo $subcat;
        }
    }
}

【问题讨论】:

  • .....问题是??
  • 问题是问题中没有问号
  • 因缺乏问题而被否决。
  • 如果确实回答了您的问题,请考虑接受答案(点击左侧的勾号)

标签: php html forms checkbox


【解决方案1】:

Mindreading:您获得所有类别的所有复选框值,但需要按类别进行。 --> 您必须通过名称属性将子类别(复选框)链接到类别。

$categories:数组包含您的类别的idname

<form name="preview" id="post" action="" method="post">
<?
foreach ($categories as $cat) { // for each of your categories 4 checkboxes

    echo "<p>category: {$cat['name']}</p>";
    echo "<input type=\"checkbox\" name=\"cat_{$cat['id']}_sub[]\" value=\"something\" /> option 1<br />";
    echo "<input type=\"checkbox\" name=\"cat_{$cat['id']}_sub[]\" value=\"something\" /> option 2<br />";
    echo "<input type=\"checkbox\" name=\"cat_{$cat['id']}_sub[]\" value=\"something\" /> option 3<br />";
    echo "<input type=\"checkbox\" name=\"cat_{$cat['id']}_sub[]\" value=\"something\" /> option 4<br />";
    // name of checkbox if id=1: "cat_1_sub[]"

} // foreach

<input class="button-primary" name="submit_preview" value="Submit Selected Tees" type="submit">
</form>

提交后:

if (isset($_POST['submit_preview'])) {

    foreach ( $_POST as $name => $value) {

        if (substr($name,0,4)=='cat_') echo "$name: $value <br />";

    } // foreach
} // if isset

【讨论】:

    猜你喜欢
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 2011-08-11
    相关资源
    最近更新 更多