我在视图中有一组如下复选框,作为较大表单的一部分。
<input type = "checkbox" value = "1" name = "checkbox_array[]" /> Checkbox 1
<input type = "checkbox" value = "2" name = "checkbox_array[]" /> Checkbox 2
<input type = "checkbox" value = "3" name = "checkbox_array[]" /> Checkbox 3
<input type = "checkbox" value = "3" name = "checkbox_array[]" /> Checkbox 3
假设我选中复选框 2 和复选框 4,然后单击提交。为了保存,我在控制器中循环checkbox_array[]
如下。
$checkbox_array = $this -> input -> post('checkbox_array', TRUE)
<?php for($i=0;$i<count($checkbox_array);$i++){
$users = new User();
$users -> role_id = $checkbox_array[$i];
//Amongst other form data
$users -> save();
}?>
这会将数据库中的数据保存为:
id role_id
1 2
2 4
使用相同的视图,我打算编辑保存的数据。所以现在说我要选中复选框 1,取消选中复选框 2,选中复选框 3,保留复选框 4。这样我打算在数据库中拥有以下内容。
id role_id
1 1
2 3
3 4
但是我不知如何进行更新。我一直在考虑从数据库中获取保存的数组,进行inarray()
搜索,然后插入不在保存数组中的数据,计算上我不知道这有多有效。
有没有我可以使用的 mysql 函数来实现这一点,比如 like replace()
,或者我还能如何实现编辑?
谢谢你。