如何根据数据库中的设置值选中复选框?

时间:2020-10-11 16:18:47

标签: php

我正在尝试根据数据库中记录的值设置选中的复选框。下面是$ categories数组,其中列出了所有不同的选项,而$ book_categories是从数据库中检索到的特定记录的值的数组。因此,如下所示,在$ book_categories中,此特定记录仅列出了类别2,因此仅应选择第二个复选框(英语)。我需要在HTML中进行哪些修改才能实现此目的?

$categories = array('0' => array('categoryid' => 1, 'name' => 'Technology'), '1' => array('categoryid' => 2, 'name' => 'English'), '2' => array('categoryid' => 3, 'name' => 'Science'));

$book_categories = array('2' => 2);

    <!-- HTML -->
<label>Category:</label>
<?php foreach($categories as $category) : ?>
    <input class="radio" type="checkbox" name="book-category[]" value="<?php echo $category['categoryid'] ?> " /><span class="radio-label"><?php echo $category['name'] ?></span><br />
<?php endforeach; ?>

这是我尝试过的方法,但是不起作用:

<?php foreach($categories as $category) : ?>
                <input class="radio" type="checkbox" name="book-category[]" value="<?php echo $category['categoryid'] ?> " <?php in_array($category['categoryid'], $book_categories)?'checked':'' ?> /><span class="radio-label"><?php echo $category['name'] ?></span><br />
            <?php endforeach; ?>

1 个答案:

答案 0 :(得分:1)

您的桌子是这样的:

<?php
        $categories = [
            '0' => [
                'categoryid' => 1,
                'name' => 'Technology'
            ],
            '1' => [
                'categoryid' => 2,
                'name' => 'English'
            ],
            '2' => [
                'categoryid' => 3,
                'name' => 'Science'
            ]];
?>

因此,在对其进行迭代时,如果要选中复选框,则必须在输入单选中添加选中的属性:

<input class="radio" type="checkbox" name="book-category[]" <?php if ($category['categoryid'] === 2){echo checked} ?> " />
<span class="radio-label"><?php echo $category['name'] ?></span>
<br/>

您可以将$ 2替换为$ book_categories [2]

或者您可以有多个类别,请在以下情况下使用in_array:

<?php if (in_array($category['categoryid'], $book_categories){echo checked} ?>