这是一个显而易见的代码,显示了我正在寻找的例子。
让我们说这是一个晚餐菜单,回声是目前存储在数据库中的所有食物。用户只选择他们想要的食物,并将这些选择插入另一个表中。
实施例
<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语句只会注意到是否选中了任何一个复选框。
谢谢!
答案 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 />";
}
}
?>