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 语句只通知是否选择了任何一个复选框。

谢谢!

4

1 回答 1

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 />";
           }
       }
?>
于 2012-05-10T02:31:54.013 回答