0

注文フォームを作成するスクリプトを実行しますが、これは非常に小さなサンプルです。私は PHP と動的フォームが苦手です。mysql データベースからデータを取得します。

<td>
<h3>Round Cuts</h3>
<?php while($row = mysql_fetch_array($round_cuts)){
$round_box_value = @$row["meat_names"];
$round_box_value_name = @$row["meat_names"];
echo " <input type=\"checkbox\" name=\"round_box_value\" value=\"$round_box_value_name\">     $round_box_value_name";
echo "<br>";
}?>
</td>

私は基本的な連絡先フォームしか作成したことがありません。どうすればこのような動的フォームを処理できますか。他のすべてが失敗した場合は、可能なすべての要素を取得して、動的ではないかのようにプログラムします。もっと良い方法があるはずです。

ウェブサイトへのリンクでも役に立ちます。私は解決策を探してきました。ありがとう。

4

1 に答える 1

0

あなたのテーブルを主キーとして想定しますid

チェックボックスを少し変更することから始めます。

<?php 
while($row = mysql_fetch_array($round_cuts)){
  echo sprintf('<label><input type="checkbox" name="round_box_value[]" value="%s"> %s</label><br>', $row['id'], $row['meat_names']);
}
?>

名前[]の末尾に、それが値の配列であることを php に伝えるようになりました + 便宜上、チェックボックスをラベルで囲みました。

次に、フォームを処理するときに、次のように round_box_value を単純に繰り返すことができます

<?php
foreach ($_POST['round_box_value'] as $id) {
  // $id is the table reference from your previous table
}

// or query all the rows selected
$ids = array_map('intval', $_POST['round_box_value']); // "basic" sql injection handler
$sql = "SELECT * FROM table WHERE id IN (".implode(",", $ids).")";

次のようなものを生成する必要があります。

SELECT * FROM table WHERE id IN (2,5,7)
于 2012-06-05T21:46:18.860 に答える