【问题标题】:importing from mysql column to checkbox php从mysql列导入复选框php
【发布时间】:2023-04-05 06:03:01
【问题描述】:

我正在尝试从名为“products”的表中将 mysql 列作为分解值(类别 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
    }
    ?>

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

有什么帮助吗?

【问题讨论】:

    标签: php mysql mysqli explode implode


    【解决方案1】:

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

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

    你需要移动你的 &lt;li&gt;&lt;/li&gt;$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
        }
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-19
      • 2013-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多