0

シンプルなDBと小さなテーブルがあります。STOCKという名前のこのテーブルには、文房具のさまざまなアイテムの名前という 1 つの列しかありません。

私はPHP-MySQLでフォームを動的に生成しています.STOCK (鉛筆、ペンなど)からアイテムを取得し、echo()関数を使用してそれらを表示します。そこで、アイテムとそれに対応する<input>テキスト ボックスを表示するフォームを生成しました。このフォームを送信すると、$_GET配列をトラバースしてすべての名前とそのテキスト入力にアクセスするにはどうすればよいですか?

動的に生成されるフォームは次のとおりです。

        $res = mysql_query("SELECT * FROM Stock");

        echo "<form name='input' action='add_stock_later.php' method='get'>";
        echo "<table align='left' border='1'>
        <tr>
        <th>Item</th>
        <th>Quantity</th>
        <th>Remarks</>
        </tr>";

        while($row = mysql_fetch_array($res))
          {
            $item = $row['Item'];
            echo "<tr>";
            echo "<td>" . $item . "</td>";

            echo "<td><input type='text' name='$item'></td>";
            echo "<td><input type='text' name='Remarks'></td>";
            echo "</tr>";
          }

          echo "<tr><td></td>
        <td align='middle'><input type='submit' value='Submit'></td></tr>";


        echo "</table>";

add_stock_later.phpで、これらすべてにアクセスするにはどうすればよいですか。これ$itemは、手動で使用する必要なく、対応する入力$_GET['Pencil'], $_GET['Pen']です。

4

2 に答える 2

1

まず、フォームを編集します。

echo "<td><input type='text' name='".$item."[quantity]'></td>";
echo "<td><input type='text' name='".$item."[remarks]'></td>";

次に、を使用しますforeach()

foreach ($_GET as $stationery => $info) {
    $stationery; // name of the stationery
    $info["quantity"]; // quantity of the stationery
    $info["remarks"]; // remarks for the stationery
}
于 2013-01-30T03:32:20.917 に答える
0

そのようなものは、もちろんそれに追加します。

$required = array('pencil', 'pen', 'paper', 'staples');
foreach ($required as $getKey){
    if (isset($_GET[$getKey]) && $_GET[$getKey] !=''){
        $$getKey = trim($_GET[$getKey]);
    }
}

これにより、ナックルヘッドがガベージを$_GET['pencil']注入$pencilしようとすることを心配する必要がなくなります。

于 2013-01-30T03:37:43.993 に答える