-2

私はこのようなフォームを持っています

<table class="audio_channels">
    <tbody>
        <tr class="channel">
            <td>
                <label>Field1</label><br>
                <select name="value[][field1]">
                    <option value="option">option</option>
                </select>
            </td>
            <td>
                <label>Field2</label><br>
                <select name="value[][field2]">
                    <option value="option">option</option>

                </select>
            </td>
            <td>
                <label>Field3</label><br>
                <select name="value[][field3]">
                    <option value="option">option</option>
                </select>
            </td>
            <td>
                <label>Field4</label><br>
                <select name="value[][field4]">
                    <option value="option">option</option>
                </select>
            </td>
        </tr>
    </tbody>
    <tbody>
        <tr class="channel">
            <td>
                <label>Field1</label><br>
                <select name="value[][field1]">
                    <option value="option">option</option>
                </select>
            </td>
            <td>
                <label>Field2</label><br>
                <select name="value[][field2]">
                    <option value="option">option</option>
                </select>
            </td>
            <td>
                <label>Field3</label><br>
                <select name="value[][field3]">
                    <option value="option">option</option>
                </select>
            </td>
            <td>
                <label>Field4</label><br>
                <select name="value[][field4]">
                    <option value="option">option</option>
                </select>
            </td>

        </tr>
    </tbody>
    <tbody>
    </tbody>
</table>

動的に追加されたフィールドを自動インクリメントするために使用[]していますが、あるフォームではうまく機能していましたが、別のフォームでは var_dump は$_POST['value']次のようになります。

array(8) {
  [0]=>
  array(1) {
    ["field1"]=>
    string(6) "option"
  }
  [1]=>
  array(1) {
    ["field1"]=>
    string(6) "option"
  }
  [2]=>
  array(1) {
    ["field2"]=>
    string(6) "option"  }
  [3]=>
  array(1) {
    ["field2"]=>
    string(6) "option"  }
  [4]=>
  array(1) {
    ["field3"]=>
    string(6) "option"  }
  [5]=>
  array(1) {
    ["field3"]=>
    string(6) "option"  }
  [6]=>
  array(1) {
    ["field4"]=>
    string(6) "option"  }
  [7]=>
  array(1) {
    ["field4"]=>
    string(6) "option"  }
}

行単位ではなく、フィールド 1、フィールド 1、フィールド 2、フィールド 2 .. に注意してください (ドキュメントの他の場所で発生しています)。

なぜこうなった?私が読んだことはすべて、DOM に表示される順序で $_POST 変数に入れる必要があると述べていますが、これはそうではないようです。

確かにインクリメントキーをハードコーディングする必要があるかもしれませんが、私が読んだすべてがDOMの順序であるべきであることを示唆しているのに、なぜこのようになるのか興味があります

4

1 に答える 1

2

変化する

value[][fieldX]

value[fieldX]

そして多分あなたは値を以下でグループ化する必要があります:

value[groupX][fieldX]

例えば

value[row1][field1]
value[row1][field2]
value[row1][field3]

value[row2][field1]
value[row2][field2]
value[row2][field3]
于 2012-08-03T14:43:01.583 に答える