0

テーブルの行をループし、各行からのテキスト入力とラジオ選択の両方を投稿するPHPコードを記述したいと思います。

HTMLの例

  <body>
    <form method="post" action="table.php">
    <table>
      <tr>
        <td><input type="text" name="name[]"></td>
        <td><input type="radio" name="radio1" value="+">+</td>
        <td><input type="radio" name="radio1" value="-">-</td>
      </tr>
      <tr>
        <td><input type="text" name="name[]"></td>
        <td><input type="radio" name="radio2" value="+">+</td>
        <td><input type="radio" name="radio2" value="-">-</td>
      </tr>
      <tr>
        <td><input type="text" name="name[]"></td>
        <td><input type="radio" name="radio3" value="+">+</td>
        <td><input type="radio" name="radio3" value="-">-</td>
      </tr>
      <tr>
        <td><input type="text" name="name[]"></td>
        <td><input type="radio" name="radio4" value="+">+</td>
        <td><input type="radio" name="radio4" value="-">-</td>
      </tr>
      <tr>
        <td><input type="text" name="name[]"></td>
        <td><input type="radio" name="radio5" value="+">+</td>
        <td><input type="radio" name="radio5" value="-">-</td>
     </tr>
  </table>
  <input type="submit" value="submit">
  </form>
  </body>
</html>

行数が異なる場合があります。

4

1 に答える 1

0
<?php
  $rowCount = count($_POST['name']);
  echo "<table>";
  for ($i=0; $i<$rowCount;$i++)
  {
    echo "<tr>";
    echo "<td>".$_POST['name'][$i-1]."</td>";
    echo "<td>".$_POST['radio'.$i]."</td>";
    echo "</tr>";
  }

  echo "</table>"
?>

count()を使用して各行に存在する配列要素(この場合はname = "name []")をカウントすることにより、行数を取得します。次に、forループを作成して行をループし、forループ内で$_POSTを使用して各変数を取得します。各行(つまり、radio1、radio2など)に対して選択されたラジオ値を取得するには、要素名を配列ではなく名前だけで参照します。要素radio []を作成すると、異なる行がその一部と見なされるためです。同じラジオ選択グループ。

于 2013-01-30T17:29:45.943 に答える