这是我的HTML代码
<input type="checkbox" name="cbox[]" value="Jaywalking" />
Jaywalking<br>
<input type="checkbox" name="cbox[]" value="Littering" />
Littering<br>
<input type="checkbox" name="cbox[]" value="Illegal Vendor" />
Illegal Vendor
这是我的PHP代码
if(is_array($_POST['cbox'])) $violation=implode(',',$_POST['cbox']); else $violation=$_POST['cbox'];
mysql_query("insert into tblcitizen(violation) values ('$violation')",$conn) or die (mysql_error());
如何更新此复选框?例如,我在我的注册表单中选择了jaywalking,我想编辑它,如果我想要检查它是否可以获取它,我需要做什么?请提供示例代码。非常感谢你。
答案 0 :(得分:0)
我建议将另一个与tblcitizen
相关的表作为ManyToOne,这样您就可以为每个提交的复选框创建单独的记录,并将复选框的Id作为值,然后您就可以更新每个单独记录。
如果要将其保存在一个表中并将所有值保存在由分隔符分隔的一个字段中,如果未选中该复选框,则不会保存该值;例如,如果我们有3个带有这些值的复选框 jaywalking,乱扔垃圾,mysample 并且首先检查第三个,那么保存在数据库中的值应为jaywalking,mysample
。
我假设这是您在编辑模式下的表单:
$result = mysqli_query("SELECT * FROM `tblcitizen` WHERE `id`='$id'");
$row = mysqli_fetch_assoc($result);
$selected_boxes = explode(',', $row['violation']);
<input type="checkbox" name="cbox[]" value="Jaywalking" <?php in_array('Jaywalking', $selected_boxes) ? 'checked' : '' ?> /> Jaywalking<br>
<input type="checkbox" name="cbox[]" value="Littering" <?php in_array('Littering', $selected_boxes) ? 'checked' : '' ?> /> Littering<br>
<input type="checkbox" name="cbox[]" value="Illegal Vendor" <?php in_array('Illegal Vendor', $selected_boxes) ? 'checked' : '' ?> /> Illegal Vendor
现在提交后进行编辑
if(is_array($_POST['cbox'])) $violation=implode(',',$_POST['cbox']); else $violation=$_POST['cbox'];
$query = "UPDATE `tblcitizen` SET `tblcitizen` = '$violation' WHERE `id`='$id'";
...
这是实现此逻辑的最简单方法