-1

私はこのフォームを持っています:

 <tbody>
    <tr>
     <th>ID</th>
     <th>Name</th>
     <th>Birthdate</th>
     <th><input type="text" autofocus="autofocus" name="textinput1"/></th>
     <th><input type="checkbox" name="checkinput[]" value="1"/></th>
    </tr>
    <tr>
     <th>ID</th>
     <th>Name</th>
     <th>Birthdate</th>
     <th><input type="text" autofocus="autofocus" name="textinput2"/></th>
     <th><input type="checkbox" name="checkinput[]" value="1"/></th>
    </tr>
    (...and so on...)
  </tbody>

送信ボタンをクリックすると、投稿データが配列タイプになり、各インデックスにチェックボックス値とテキスト入力がある方法はありますか?このように、私は配列を反復するだけでよく、フォームの各行について、データベースのそれぞれの行をチェックして更新します。

4

1 に答える 1

2

テキスト入力ボックスを配列にし、配列キーの値をHTMLに入力します。

<th><input type="text" autofocus="autofocus" name="textinput[1]"/></th>
<th><input type="checkbox" name="checkinput[]" value="1"/></th>

次に、繰り返すと、次のようになります。

$input = is_array( $_POST['textinput']) ? $_POST['textinput'] : array();
foreach( $input as $checkbox_value => $text_input_value)
     echo $checkbox_value . ' ' . $text_input_value;

チェックされたチェックボックスのみがブラウザからサーバーに送信されるため、チェックボックスがチェックされているかどうかはわかりません。これを行うには、チェックボックスを変更して配列キーも含めます。

<th><input type="checkbox" name="checkinput[1]" value="1"/></th>

次に、foreachループを次のように変更します。

foreach( $input as $checkbox_value => $text_input_value) {
     echo $checkbox_value . ' ' . $text_input_value;
     $checked = (isset( $_POST['checkinput'][$checkbox_value])) ? 'checked' : 'not checked';
     echo "\nThe checkbox was $checked\n";
}
于 2012-06-20T16:56:50.697 に答える