php - 多选 MySQL 数据中的复选框,用逗号 (,) 分隔

标签 php mysql arrays checkbox explode

有更新表单,所以我需要它,如果某些复选框输入已经根据 MySQL 数据进行了检查,那么它将显示已检查。

<?php 
$statement = $db->prepare("SELECT leavingEquipment FROM orderform WHERE orderNo='$orderNo'");  // here are the checked data 
$statement->execute();
$result = $statement->fetchAll(PDO::FETCH_ASSOC);
    foreach($result as $row4){
        $leavingEquipment = explode(", ",$row4['leavingEquipment']); // Here I use explode I check this with var_dump 
        $statement = $db->prepare("SELECT * FROM equipment"); // here all equipment 
        $statement->execute();
        $result = $statement->fetchAll(PDO::FETCH_ASSOC);
            foreach($result as $row3) {
                $leavingEquipment3=$row3['equipmentTitle'];
                ?>
            <input type="checkbox" name="leavingEquipment[]" value="<?php echo $row3['equipmentTitle']; ?>" <?php if($leavingEquipment==$leavingEquipment3) echo 'checked'; ?>><label class="control-label"><?php echo $row3['equipmentTitle']; ?></label>
                <?php
             }
    }
?>

Var_dum 输出如下: array(2) { [0]=> string(9) “蓝牙”1 => string(6) “外壳”

显示如下:enter image description here

但我需要这样: enter image description here

提前致谢。

最佳答案

看这里

<input ... name="leavingEquipment[]" } value="<?php echo $row3['equipmentTitle']; ?>" <?php if($leavingEquipment==$leavingEquipment3) echo 'checked'; ?>> ...
                                     ^ a lone closing bracket                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

您正在将数组 $leavingEquipment 与字符串 $leavingEquipment3 进行比较。

改为使用 in_array()检查复选框是否已被选中的功能,即设备是否已经在阵列中。所以你的内部 foreach 循环应该是这样的:

// your code

foreach($result as $row3) {
    $leavingEquipment3=$row3['equipmentTitle'];
    ?>
    <input type="checkbox" name="leavingEquipment[]" value="<?php echo $row3['equipmentTitle']; ?>" <?php if(in_array($leavingEquipment3, $leavingEquipment)){ echo " checked='checked'"; } ?>>
    <label class="control-label"><?php echo $row3['equipmentTitle']; ?></label>
    <?php
}

// your code

关于php - 多选 MySQL 数据中的复选框,用逗号 (,) 分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40067383/

相关文章:

python - del 语句不适用于列表

php - 在 ubuntu 上安装 phpmyadmin 后,用户 'root' @'localhost' 的访问被拒绝

php - 没有 catch 就不能使用 try

php - 如何使用 UPDATE 表 SET column = NULL 释放未使用的空间?

c++ - 新的和数组的大小

c++ - 使用后缀数组实现最长公共(public)子串

php - mySQL SELECT 和 COUNT 极速查询

php - 使用 ORDER BY 和 HAVING 时加快 MySQL 查询速度

php - 加载动态 php 和 mysql 页面而不刷新 - AJAX

c# - 了解用户是否已从 C#/.NET 应用程序连接