Php 如果与其他数组匹配,则自动选中“使动态”复选框

Php 如果与其他数组匹配,则自动选中“使动态”复选框,php,mysql,Php,Mysql,这是我的php脚本,它从DB中提取记录,然后创建动态复选框,复选框是用户需要勾选的水果列表 我想要实现的是,如果复选框与另一个数组中的某些信息匹配,则自动选中该复选框 假设数组内容是香蕉、芒果、苹果。我希望这些复选框已自动选中。我该怎么做?谢谢 <?php fruits = $stmt->prepare("SELECT * FROM fruits ORDER by fruit_id ASC"); $fruits->execute(); $cols

这是我的php脚本,它从DB中提取记录,然后创建动态复选框,复选框是用户需要勾选的水果列表

我想要实现的是,如果复选框与另一个数组中的某些信息匹配,则自动选中该复选框

假设数组内容是香蕉、芒果、苹果。我希望这些复选框已自动选中。我该怎么做?谢谢

   <?php
    fruits = $stmt->prepare("SELECT * FROM fruits ORDER by fruit_id ASC");
    $fruits->execute();

    $cols = 6;

    do {
    echo "<tr>";
    for ($i = 1; $i <= $cols; $i++) {

    $row = $fruits->fetch(PDO::FETCH_ASSOC);

    if ($row) {
    $fruit_id = $row['fruit_id'];
    $fruit_name = $row['fruit_name'];
    ?>

    <td>
    <table>
    <tr valign="top">
    <td>
    <?php echo '<input type="checkbox" id="fruit_id[]" name="fruit_id[]" value="' . $fruit_id . '"/>' . $fruit_name . "\n"; ?>
    </td>
    <td width="30">&nbsp;</td>
    </tr>
    </table>
    </td>
    <?php
    } else {
    echo "<td>&nbsp;</td>";
    }
    }
    } while ($row);
    ?>

您可以像这样做:

if(in_array("apple", $yourArray)) { echo "checked"; } 如果(在_数组(“apple”,“yourray”){echo“checked”;}
希望您得到它

假设您的自动检查水果数组是$autocheck\u数组。然后您可以使用:

<?php echo '<input type="checkbox" id="fruit_id[]" name="fruit_id[]" value="' 
. $fruit_id . '"' . (in_array($fruit_name, $autocheck_array) ? ' checked="checked"' : '') 
. '"/>' . $fruit_name . "\n"; ?>


如果您愿意的话,可以很容易地将三元运算符更改为if语句,但我更喜欢单线方法。

尝试过这种方法,但没有填充检查$自动检查数组=数组(“苹果”、“香蕉”);
value=“”.$fruit\u id.
-编辑后,请尝试使用当前代码。最简单的调试方法是查看它提供的HTML输出。只需查看结果页面的源代码。顺便问一下,为什么将
id
设置为
fruit\u id[]
?您只需要这个名称。一旦发送查询,php将无法使用该id,并且该id在HTML中应该是唯一的。