-2

フォーム配列内のチェックボックスの配列を取得しようとしています。最初にフォーム配列としてデータを取得してから、配列内のチェックボックスの配列を取得しようとしています。

<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;
        }
    }
}
4

1 に答える 1

0

注意: すべてのカテゴリですべてのチェックボックスの値を取得しますが、カテゴリごとに表示する必要があります。--> サブカテゴリ (チェックボックス) を名前属性でカテゴリにリンクする必要があります。

$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
于 2013-03-03T01:04:43.327 に答える