0

これは、私がやろうとしていることの例の、明らかに機能していないコードです。

これがディナー メニューで、エコーは現在データベースに保存されているすべての食品であるとしましょう。ユーザーが必要な食品のみを選択すると、それらの選択が別のテーブルに挿入されます。

例:

<form method="post" action="entryform3.php">
<?php

SELECT * FROM foods ...etc...etc...

//Say for example whats echoed below at the moment is value: pizza, apple, steak...etc. So this will echo atleast 3 entries.

echo "For dinner, I'd like ". $result['food'] ."?";
echo "<input type=\"checkbox\" name=\"check\" />Click Me<hr></input>";
echo "<input type=\"hidden\" name=\"item_name\" value=\"$result['food']\"/>";

?>

<input type="submit" value="Add Selected Foods" name="submit"></form>


------------entryform3.php-----------
<?php

$food = $_POST['food'];

if (isset($_POST['check'])) {


INSERT INTO selectedfoods "(foods) VALUES '$food'";


}

//made up example... but if user check marks only apple, and steak from the echo, I want only apple and steak to be inserted into database.
?>

mysqlなどが不足していることに気づきましたが、チェックボックスボタンを個々の値と結び付けることに問題があります。この例を引用した私の部分的に動作するコードは、食品のいずれかがチェックされている場合、最後にエコーされた選択のみを取得します。

そのため、正しい食品の選択はデータベースに送信されず、最後にエコーされたものだけが送信されます。if ステートメントは、チェック ボックスのいずれかが選択されているかどうかのみを通知します。

ありがとう!

4

1 に答える 1

1

チェックボックスの名前を配列として見逃しているようです。たとえば、次のようにチェックボックスを記述できます。

<input type="checkbox" name="box[]" value="name_of_food" />Name_of_Food<br />
.......
.......

結果が得られたら、次のようにします。

<?php
       if(isset($_POST['check'])){
           $foods = $_POST['box'];

           foreach($foods as $food){
               echo $food." <br />";
           }
       }
?>
于 2012-05-10T02:31:54.013 に答える