如果与另一个数组匹配,则自动选中动态复选框

时间:2011-11-16 16:00:35

标签: php mysql

这是我的PHP脚本,它从数据库中提取记录然后创建动态复选框,复选框是用户需要选择的水果列表。

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

让我们说数组内容是Banana,Mango,Apple。我希望这些复选框自动检查。我怎样才能做到这一点?感谢。

   <?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);
    ?>

2 个答案:

答案 0 :(得分:2)

你可以这样做:

if(in_array("apple", $yourArray)) { echo "checked"; }

希望你明白

答案 1 :(得分:1)

让我们说你的自制水果阵列是$ autocheck_array。然后你可以使用:

<?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语句,但我更喜欢单行方法。