【问题标题】:Creating checkboxes from MySQL database, then echo selections从 MySQL 数据库创建复选框,然后回显选择
【发布时间】:2014-01-27 04:00:48
【问题描述】:

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

在我的 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>';
}

我遇到的问题是 1.我不知道这是否是正确的方法。 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>

【问题讨论】:

    标签: php mysql forms checkbox


    【解决方案1】:

    您可以在标签中使用“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";
      }
    }
    

    【讨论】:

    • 另外一条建议,与复选框无关:将 foreach(explode(',', $keywords) 替换为 $keyword) { with $keywordArray = explode(',', $keywords) ; foreach($keywordArray as $keyword) { 如果你按照自己的方式做,PHP 会在每次循环时执行explode() 命令。
    猜你喜欢
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    相关资源
    最近更新 更多