2012-05-10 38 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 [a]”',不好:'echo“$ x ['a']”'。也可以(并且首选):'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 />"; 
      } 
     } 
?>