从mysql列导入到复选框php

时间:2015-11-24 20:40:42

标签: php mysql mysqli explode implode

我正在尝试从mysql列导入名为“products”的表中的爆炸值(类别ID),并将其打印在复选框输入中,并检查值(类别ID)是否等于(类别ID)在名为“cats”的表中,要将复选框设置为“已选中”,这是我的代码:

   <?php
    for($i2=0;$i2<$rowsZ22;$i2++){
//exploding
    $catszz2 = explode(",", $bussSubcat);
//foreach start
    foreach($catszz2 as $catzz2) {
    if($catzz2==$row22[$i2]["id"]){
    $ischecked2="checked";
    }else{
    $ischecked2="";
    }
    }
//foreach end
    ?>
    <li><input type="checkbox" onclick="getElementById('cats<?=$row22[$i2]["parent"]?>').checked= true;" <?=$ischecked2?> value="<?=$row22[$i2]["id"]?>" name="subcats[]" id="" /> <?=$row22[$i2]["title"]?></li>
    <?php
    }
    ?>

代码只检查最后一个输入(最后一个类别)

任何帮助?

1 个答案:

答案 0 :(得分:0)

在您实际输出复选框之前,您正在运行foreach ...

因此,$isChecked变量实际上在您的foreach中发生变化,但只会打印循环的最后一个值。

你需要移动你的 在<li></li>

的循环中$isChecked

我不确定这是不是你想要的,但这里有:

<?php
for ($i2 = 0; $i2 < $rowsZ22; $i2++) {
    $catszz2 = explode(",", $bussSubcat);
    foreach ($catszz2 as $catzz2) {
        if ($catzz2 == $row22[$i2]["id"]) {
            $ischecked2 = "checked";
        } else {
            $ischecked2 = "";
        }
        ?>
        <li>
            <input type="checkbox"
                   onclick="getElementById('cats<?= $row22[$i2]["parent"] ?>').checked= true;" <?= $ischecked2 ?>
                   value="<?= $row22[$i2]["id"] ?>" name="subcats[]" id=""/> <?= $row22[$i2]["title"] ?>
        </li>
        <?php
    }
}
?>