1

次の例のように値の入力とチェックボックスを取得(処理)したいのですが、チェックボックスの名前要素を変更せずに、次のように試しましたが、うまくいきません:

デモ: http://codepad.viper-7.com/4ldRKV

<?php
if($_POST){
    //foreach ($_POST['cDA'] as $idx => $value) {
        foreach ($_POST as $idx => $value) {
            echo '<pre>';
            print_r($_POST);
        }
    //}
}
?>
<form action="#" method="post">
    <input type="text" name="cDI[]" value="F1">
        <input type="checkbox" name="cDA[0][]" value="11" checked>
        <input type="checkbox" name="cDA[0][]" value="11" checked>
        <input type="checkbox" name="cDC[1][]" value="22" checked>
        <input type="checkbox" name="cDC[1][]" value="22" checked>
    </br>
    <input type="text" name="cDI[]" value="F2">
        <input type="checkbox" name="cDA[0][]" value="33" checked>
        <input type="checkbox" name="cDA[0][]" value="33" checked>
        <input type="checkbox" name="cDC[][]" value="44" checked>
        <input type="checkbox" name="cDC[][]" value="44" checked>
    </br>
    <input type="text" name="cDI[]" value="F3">
        <input type="checkbox" name="cDA[0][]" value="55" checked>
        <input type="checkbox" name="cDA[0][]" value="55" checked>
        <input type="checkbox" name="cDC[][]" value="66" checked>
        <input type="checkbox" name="cDC[][]" value="66" checked>
    </br>
<input type="submit" value="Submit">
</form>

次のように出力したい: (次の結果を取得するためにhtmlとphpをどのように変更する必要がありますか?)

Array
(
    [cDI] => Array
        (
            [0] => F1
            [1] => F2
            [2] => F3
        )
    [cDA] => Array
        (
            [0] => Array
                (
                    [0] => 11
                    [1] => 11                    
                )
            [1] => Array
                (
                    [0] => 33
                    [1] => 33                    
                )
            [2] => Array
                (
                    [0] => 55
                    [1] => 55                    
                )

        )
    [cDC] => Array
        (
            [0] => Array
                (
                    [0] => 22
                    [1] => 22                    
                )
            [1] => Array
                (
                    [0] => 44
                    [1] => 44                    
                )
            [2] => Array
                (
                    [0] => 66
                    [1] => 66                    
                )

        )

)
4

1 に答える 1

0

cDA[0][]入力ボックスのコレクションの名前としてを使用すると、次のようになり$_POST['cDA']ます。

array(
    0 => array(
        0 => 11,
        1 => 11,
        2 => 33,
        3 => 33,
        4 => 55,
        5 => 55,
    ),
);

cDC[][]入力ボックスの名前として使用すると、次の配列になり$_POST['cDC']ます。

array(
    0 => array(
        0 => 11,
    ),
    0 => array(
        0 => 11,
    ),
    0 => array(
        0 => 33,
    ),
    0 => array(
        0 => 33,
    ),
    0 => array(
        0 => 55,
    ),
    0 => array(
        0 => 55,
    ),
);

それらを適切にグループ化するには、最初の角括弧の間に値を明示的に設定する必要があります:

cDA[0][]
cDA[0][]
cDC[0][]
cDC[0][]

cDA[1][]
cDA[1][]
cDC[1][]
cDC[1][]

cDA[2][]
cDA[2][]
cDC[2][]
cDC[2][]

デモ

于 2012-12-18T17:43:59.000 に答える