【问题标题】:Check a checkbox if value is present in a db table如果数据库表中存在值,请选中复选框
【发布时间】:2016-05-12 09:43:50
【问题描述】:

我正在使用从数据库表中获取的数据填充复选框。我的问题与 SO 上的其他问题不同,因为我定义了一个复选框,并且当从数据库中填充时它会循环。所以我想检查包含另一个表中存在的值的复选框。使用我拥有的代码,仅选中包含表最后一行值的复选框。我做错了什么?

    //this is the value I get from the other table.
    $indb = "$bid,$c,$sc,$p";

    $q5=mysqli_query($link,"SELECT * FROM brands_offer WHERE Brand_Id='$bid' AND Published='1' ");
    while($row5 = mysqli_fetch_array($q5)){
        $catid= $row5['Catg_Id'];
        $subcatid= $row5['Subcatg_Id'];
        $pid= $row5['Product_Id'];      

        //this is the value that populates the checkboxes
        $vals="$bid,$catid,$subcatid,$pid";
    ?>
    //my argument is here
    <input type="checkbox" name="checkbox[]" value="<?php echo "$vals";?>" <?php if ($vals == $indb){?> checked="checked" <?php } ?>>
    <?php
        echo $bname;
        echo " ->  ";
        echo $catid;
        echo ",  ";
        echo $subcatid;
        echo ",  ";
        echo $pid;
        echo "  ";
    }

【问题讨论】:

  • @Dagon 我认为复选框在 while 循环内。 @YohanBlake - 你为什么不直接做一个JOIN 或一个嵌套循环?还是它已经在嵌套循环中?能否提供另一张桌子的详细信息?

标签: php mysql database checkbox


【解决方案1】:

知道了,我将表中的值添加到数组 $indb[] = "$bid,$c,$sc,$p"; 并使用 &lt;?php if (in_array($vals, $indb)){?&gt; checked="checked" &lt;?php } ?&gt; 检查它是否在数组中。工作:D

【讨论】:

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