2012-05-10 2 views
0

Вот быстрый код, который, очевидно, выглядит нерабочим примером того, что я ищу.Опции галочки - выбор выбирает, что INSERTed в базу данных

Предположим, что это меню ужина, а эхо в настоящее время - все продукты, которые хранятся в базе данных. Пользователь выбирает только те продукты, которые они хотят, и эти выборы вставляются в другую таблицу.

Пример:

<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 [a]" ', не нормально:' 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 />"; 
      } 
     } 
?> 
Смежные вопросы