0

長さ 30 行のテーブルを表示する必要がある Web ページ (PHP ファイル内から作成) があり、ユーザーは 30 行ごとに値を入力し、ボタンを押して入力した内容を PHP で処理できます。

とにかく、30行のテーブルで通常のHTMLフォームを書き出す代わりに、PHPでこのテーブルをはるかに少ないコードで作成する方法があるのではないかと思います.

SOそのままのように見えます

<form name="createtable" action="?page=createtable" method="POST" autocomplete="off">
    <table border='1'>
        <tr>
            <th> Weight </th>
            <th> CBM Min </th>
            <th> CBM Max </th>
            <th> Min </th>
        </tr>
        <tr>
            <th> 1000 </th>
            <th> 0.1 </th>
            <th> 2.3 </th>
            <th> <input type=text name=min1> </th>
        </tr>
        <tr>
            <th> 1500 </th>
            <th> 2.31 </th>
            <th> 3.5 </th>
            <th> <input type=text name=min2> </th>
        </tr>
        <tr>
            <th> 2000 </th>
            <th> 3.51 </th>
            <th> 4.6 </th>
            <th> <input type=text name=min3> </th>
        </tr>
            ..... + 27 more rows
    </table>
</form>

私は現在、上記のように完全なテーブルを書き出しています。体重、cbm の最小値と最大値の値は標準的な速度で増加していないため、通常のループは機能しないと思いますが、これらの値を配列に入れることはできますか? 私のphpは非常にさびています

4

2 に答える 2

2

これが可能な解決策です。

/* this should contain all rows, a resultset from a database,
   or wherever you get the data from */
$rows = array(
    array(
      'weight' => 1000,
      'cbm_min' => 0.1,
      'cbm_max' => 2.3
    ),
    array(
      'weight' => 1500,
      'cbm_min' => 2.31,
      'cbm_max' => 3.5
    ),
    array(
      'weight' => 2000,
      'cbm_min' => 3.51,
      'cbm_max' => 4.6
    )
); 

?>
<form name="createtable" action="?page=createtable" method="POST" autocomplete="off">
  <table border='1'>
    <tr>
      <th> Weight </th>
      <th> CBM Min </th>
      <th> CBM Max </th>
      <th> Min </th>
    </tr>
<?php
$i = 1; // I'll use this to increment the input text name
foreach ($rows as $row) {
  /* Everything happening inside this foreach will loop for
     as many records/rows that are in the $rows array. */
 ?>
    <tr>
      <th> <?= (float) $row['weight'] ?> </th>
      <th> <?= (float) $row['cbm_min'] ?> </th>
      <th> <?= (float) $row['cbm_max'] ?> </th>
      <th> <input type=text name="min<?= (float) $i ?>"> </th>
    </tr>
  <?php
  $i++;
}
?>
  </table>
</form>
<?php
// Continue executing PHP
于 2013-08-28T20:46:06.507 に答える