【发布时间】:2011-02-13 04:19:37
【问题描述】:
我有大约 8 个复选框是从我的数据库中动态生成的。
这是我控制器中的代码
//Start Get Processes Query
$this->db->select('*');
$this->db->from('projects_processes');
$this->db->where('process_enabled', '1');
$data['getprocesses'] = $this->db->get();
//End Get Processes Query
//Start Get Checked Processes Query
$this->db->select('*');
$this->db->from('projects_processes_reg');
$this->db->where('project_id', $project_id);
$data['getchecked'] = $this->db->get();
//End Get Processes Query
这是我认为的代码。
<?php if($getprocesses->result_array()) { ?>
<?php foreach($getprocesses->result_array() as $getprocessrow): ?>
<tr>
<td><input <?php if($getchecked->result_array()) { foreach($getchecked->result_array() as $getcheckedrow): if($getprocessrow['process_id'] == $getcheckedrow['process_id']) { echo 'checked'; } endforeach; }?> type="checkbox" name="progresscheck[]" value="<?php echo $getprocessrow['process_id']; ?>"><?php echo $getprocessrow['process_name']; ?><br>
</td>
</tr>
<?php endforeach; ?>
这会在表单中生成复选框,并检查数据库指定的相应复选框。
问题在于更新它们。
到目前为止,我所做的只是删除项目的所有复选框条目,然后将所有值重新插入数据库。这很糟糕,因为 1. 它缓慢而可怕。 2. 我丢失了复选框被选中时的所有元数据。
所以我想我的问题是,如何只更新已更改的复选框?
谢谢, 蒂姆
【问题讨论】:
标签: php mysql forms codeigniter checkbox