如何显示已选中的复选框并更新数据库

时间:2013-01-29 12:23:45

标签: php mysql sql-update checkbox

我的页面上有80个复选框;这些复选框属于产品的一些选项..

我像这样存储它们

<input type="checkbox" name="options[]" value="<?php echo $row['value]?>"/>

数据库结构

**Product_id** | **Option_id**
     1                 16
     1                 45
     1                 68
     1                 78
     1                 80

问题是,我该如何更新选项?当用户进入更新页面时,用户应该能够查看选中的选项并取消选中。如何显示选中的选项?

我也将选项值存储在数据库中,如此

**id** | **Option_id** |
   1         16
   2         45
   3         68
   4         78      
   ....
   ....
   80

非常感谢你的帮助,对不起我的英语..

度过愉快的一天

3 个答案:

答案 0 :(得分:3)

在前端显示已检查

假设您有数组中产品选项的结果$checked

在循环检查以打印它们时使用此

<input type="checkbox" name="options[]" value="<?php echo $row['value']?>" <?php if(in_array($row['value'], $checked)){ echo 'checked="checked"'; }?>/>

对于更新,最简单的方法有很多方法

删除所有选项,然后添加新选中的

希望这会有所帮助

答案 1 :(得分:0)

How can i show checked options?

您可以使用checked="checked"属性选中复选框。

how should i update options?

假设您更新属于产品的选项1.您需要做的是删除现有选项并重新插入新选项。

答案 2 :(得分:0)

您应该使用像这样的数据库结构

**User_id** | **Product_id** | **Option_id** | **State**

用于存储选项值(导致每个选项与某些用户和产品相关联), 并在渲染复选框时使用数据库中的复选框状态值:

<input type="checkbox" name="options[]" value="<?= ($row['State] ? "checked": "unchecked") ?>"/>

数据库更新意味着通过在复选框更改事件上发送AJAX请求或通过在提交总表单后发送POST请求,根据复选框的实际状态执行服务器端UPDATE查询。