从MySQL数据库创建复选框,然后回显选择

时间:2014-01-26 19:50:48

标签: php mysql forms checkbox

我正在从我的数据库中提取信息,并将关键字转换为复选框作为选项。

在我的MySQL中,我有一个“关键字”列,其中包含几个我正在变成选项的关键字。例如,关键字包含“井,中,稀有,番茄酱,蛋黄酱,芥末”等字样。

在我的php脚本中,我正在爆炸和修剪关键字以创建复选框:

$i=0;
foreach(explode(',', $keywords) as $keyword) {
    $keyword = trim($keyword);
    $chkname = "checkbox{$i}";
    $i = $i+1;
    echo "<input type='checkbox' name='$chkname' value='$keyword'> $keyword <br /><br />";

     }
        echo '<input type="submit" name="button" id="button" value="Add to Order"/> </form> </td></tr></table>';
}

我遇到的麻烦是 我不知道这是否是正确的方法。 2.我需要弄清楚如何回应用户选择。如果他们选择“中等”和“番茄酱”,我需要回应那些选择。

以下是此页面的完整代码。任何指导,方向或有价值的见解都会比你知道的更多。我会选择答案。如果您还有其他需要,请告诉我。我是这个社区的新手。

<?php

require("database.php"); //connect to the database

if(isset($_GET['id'])){ 
    $id = $_GET['id'];
}

$result = mysqli_query($con,"SELECT * FROM menuitem WHERE id='$id' "); 
    if (!$result) {
        printf("Error: %s\n", mysqli_error($con));// Displays the error that mysql will generate if syntax is not correct.
        exit();
    }


//DYNAMIC PHP PULLING IN THE DATA AND SPITTING OUT THE RESULTS
while($row = mysqli_fetch_array($result))
{
    $id = $row['id'];
    $description = $row['description'];
    $picturepath = $row['picturepath'];
    $name = $row['name'];
    $price = $row['price'];
    $keywords = $row['keywords'];

    $dynamiclist = '<table align="center" width="60%" border="0" cellspacing="5" cellpadding="8">
                        <tr height="20"></tr>
                        <tr>
                            <td width="70%" valign="top" align="left"> <br />' . $name . ' <br /><br />$' . $price . '<br /><br />
                                 <form id="form1" name="form1" method="post" action="cart.php">
                                    <input type="hidden" name="pid" id="pid" value=" ' . $id . '"/>';


    echo $dynamiclist;

$i=0;
foreach(explode(',', $keywords) as $keyword) {
    $keyword = trim($keyword);
    $chkname = "checkbox{$i}";
    $i = $i+1;
    echo "<input type='checkbox' name='$chkname' value='$keyword'> $keyword <br /><br />";

     }
        echo '<input type="submit" name="button" id="button" value="Add to Order"/> </form> </td></tr></table>';
}
mysqli_close($con); //close the db connection

?>

<html>
<body>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

您可以使用代码中的“checked”参数默认选中复选框。

为了方便您自己,您可以使用以下方法命名您的复选框:

echo '<input type="checkbox" name="chkboxes[]" value="'.$keyword.'" id="chk_'.$keyword.'" /><label for="chk_'.$keyword.'">'.$keyword.'</label>'."<br />\r\n"

如果您通过这种方式创建带有标签的复选框,则用户还可以通过单击其后面的文本来启用和禁用复选框。通过使用相同的名称创建它们以及它后面的数组标识符(方括号),您可以在提交表单后在PHP的简单循环中访问它们:

if(isset($_POST['chkboxes'])) {
  foreach($_POST['chkboxes'] as $chkbox) {
    echo 'Checkbox checked: '.$chkbox."<br />\r\n";
  }
}