【发布时间】:2017-04-30 18:45:08
【问题描述】:
我想重新填充包含来自数据库中值的复选框的页面。目前,它们被存储为一个字符串,在处理例如 3、4、5 时会被拆分为一个数组。
我可以用我的数据库中的数据选中复选框,但它旁边会创建另一个空复选框。如何只选中包含数据库数据的框,而旁边没有重复的空框?
<tbody>
<?php
if(!empty($datatable)){
foreach ($datatable as $data){
?>
<tr>
<td>
<?php foreach ($event_contacts as $checked){?>
<?php if($checked==$data->id){?>
<input type="checkbox" name="id[]" id="id" checked value="<?php echo $data->id; ?>"/>
<?php }else{ ?>
<input type="checkbox" name="id[]" id="id" value="<?php echo $data->id; ?>"/>
<?php }}?>
</td>
<td><?php echo $data->first_name." ".$data->last_name; ?></td>
<td><?php echo $data->email; ?></td>
<td><?php echo $data->phone_number; ?></td>
<td><?php echo $data->address;?></td>
</tr>
<?php
}
}
?>
</tbody>
希望有人可以提供帮助。谢谢
编辑:为清楚起见添加了照片
【问题讨论】:
-
你怎么知道它被复制了?假设您的表中有 5 行,其中只有两行带有选中标签,您的 foreach 循环将继续创建您的复选框,直到您删除 else 语句
-
如果我删除 else 那么只会出现选中的复选框。
-
那么你怎么知道它被复制了?检查您的元素检查器并查看
-
对不起,它不是重复的。它是创建的未经检查的版本。
-
嗯?但是我还没有解决问题?如果我删除else,未选中的项目将不会出现。
标签: php codeigniter checkbox