0

結果セットをループして行を作成することにより、動的に生成される単一のテーブルがあります。行ごとに、2 つのチェックボックスを含める必要があります。各行のチェックボックス A はフォーム A に対応し、チェックボックス B はフォーム B に対応する必要があります。

これが有効でないことはわかっていますが、基本的には以下の疑似コードが必要です。HTML5 では、入力要素が属するフォームを指定できることはわかっていますが、私のユーザーは主に IE8 を使用しており、私が知る限り、この機能はサポートされていません。

<form name="formA">
<form name="formB">
<table>
 <tr>
  <th>
  <th>
  <th>
 </tr>

LOOP

 <tr>
  <td><input type="checkbox" name="chkA" value="1"></td>
  <td>Something</td>
  <td><input type="checkbox" name="chkB" value="1"></td>
 </tr>

END LOOP

</table>

<input type="submit" /> //formA
<input type="submit" /> //formB
</form> //formA
</form> //formB

これを達成する方法についてのアイデアはありますか? 1つの方法は、単一のフォームを使用し、クリックされた送信ボタンに応じてアクションを変更することだと思いますが、それを行う前に他の誰かがアイデアを持っているかどうかを確認したいと思います.

ありがとう、トム

4

1 に答える 1

0

おそらく最善の方法は、すべてを 1 つの形式にして、後で選択したオプションに応じて異なる動作をすることです。

例えば

<form action="doStuff.php" method="post">
  <table>
    <tr>
      <th></th>
      <th></th>
    </tr>

<!-- LOOP -->
    <tr>
      <td><input type="checkbox" name="chkA" value="1"></td>
      <td><input type="checkbox" name="chkB" value="1"></td>
    </tr>

<!-- END LOOP -->
  </table>

  <div>
    <input type="submit" name="submit" />
  </div>
</form>

doStuff.php

if (isset( $_POST["chkA"] ) ){

  // Checkbox A is checked.

}

if (isset( $_POST["chkB"] ) ){

  // Checkbox B is checked.

}
于 2013-02-28T19:45:05.010 に答える