复选框选项 - 选择决定插入数据库的内容

时间:2012-05-10 02:23:02

标签: php mysql checkbox

这是一个显而易见的代码,显示了我正在寻找的例子。

让我们说这是一个晚餐菜单,回声是目前存储在数据库中的所有食物。用户只选择他们想要的食物,并将这些选择插入另一个表中。

实施例

<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 个答案:

答案 0 :(得分: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 />";
           }
       }
?>