2012-05-10 9 views
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文だけがチェックボックスのいずれかが選択されているかどうかを通知します。

ありがとうございます!

+1

は、文字列内の引用符で囲まれた配列参照を埋め込まないでください。 PHPからの構文警告が表示されます。 ok: 'echo" $ x ['] "'、okではありません: 'echo" $ x [' a '] "'またok(そして、好ましい): 'echo" {$ x ['a']} "'。 –

答えて

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 />"; 
      } 
     } 
?> 
関連する問題