如何显示jokecategory表中选中的复选框,以及那些不显示但未选中的复选框。这就是我目前所拥有的:
<div class="control-group">
<?php
$sql = 'SELECT jokecategory.joke_id, jokecategory.category_id, category.name
FROM jokecategory
INNER JOIN category ON category.id = jokecategory.category_id
WHERE joke_id= :joke_id';
$stmt = $dbConnection->prepare($sql);
$stmt->bindValue(':joke_id', $id);
$stmt->execute();
?>
<fieldset>
<legend class="control-label">Categories:</legend>
<?php foreach ($stmt as $row) { ?>
<div class="controls">
<label for="category<?php echo($row['category_id']);?>">
<input type="checkbox" id="category<?php echo $row['category_id']; ?>" name="checkbox[]" value="<?php echo $row['category_id']; ?>" checked>
<?php echo($row['name']); ?></label>
</div>
<?php } ?>
with(类别表中的数据):
<?php $sql = 'SELECT id, name FROM category';
foreach ($dbConnection->query($sql) as $data) { ?>
<div class="controls">
<label for="category<?php echo($data['id']);?>">
<input type="checkbox" name="categories[]" id="category<?php echo($data['id']); ?>" value="<?php echo($data['id']);
?>">
<?php echo($data['name']); ?></label>
</div>
<?php } ?>
</fieldset>
</div>
目前它分为两部分,因为我不确定如何将数据显示输出到一个合并组中。所以它就像:
Joke id: xxxxx
joke_text: xxxxxx
author_name: xxxxx
categories
1: [x]
2: [x]
3: [ ]
4: [ ]
答案 0 :(得分:0)
我不确定,但是 - $ data [“category_id”]真的是一个数组吗?如果是这样,您可以像这样使用该数组中的密钥对:
<?php foreach ($data['category_id'] as $id => $checkbox) { ?>
<input type="checkbox" id="<?php echo $id; ?>" name="checkbox[]" />
<?php } ?>
答案 1 :(得分:0)
可能就像下面检查你的SQL查询并添加类别名称来获取和显示例如。 category_name
在下面使用
并进行如下修改
<fieldset>
<legend class="control-label">Categories:</legend>
<?php foreach ($data as $checkbox) { ?>
<div class="controls">
<label for="category<?php echo($checkbox['category_id']); ?>">
<input type="checkbox" name="categories[]" id="chk_category<?php echo($checkbox['category_id']); ?>" value="<?php echo($checkbox['category_id']); ?>">
<?php echo($checkbox['category_name']); ?></label>
</div>
<?php } ?>
</fieldset>
答案 2 :(得分:0)
我不确定我完全理解这个问题,但你试过吗
foreach ($data['category_id'] as $id => $checkbox)