我正在尝试根据数据库中记录的值设置选中的复选框。下面是$ 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; ?>
答案 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} ?>