codeigniter基于其ID对特定表单字段进行批量更新

时间:2015-11-25 14:43:43

标签: php mysql codeigniter activerecord codeigniter-3

我正在尝试以最简洁的方式在codeigniter中执行update_batch。我的表单由一个循环组成,我在其中生成一组输入字段,这些字段将影响val数据库的extra_config列:

<?php echo form_open('config/edit') ?>
<table>
<?php foreach ($config_by_page[$i] as $config_item): ?>
<tr class="config-row">
    <td><?php echo $config_item['description'] ; ?></td>
    <td class="edit"><input required data-id="<?php echo $config_item['id'] ?>" name="val" value="<?php echo $config_item['val'] ; ?>"></input></td>
</tr>
<?php endforeach; ?>
</table>
</form>

现在 - 我有行的id,每个“val”应该绑定到存储在数据属性data-id中,因为我不确定如何做update_batch()并且有val插入到相应的表行中。

这是我的控制器:

$data = $this->input->post(NULL, TRUE);
$this->config_model->edit_config($data);

这是我的模特:

public function edit_config($data){
  $this->db->update_batch('extra_scenarios', $data,'id');
}

如何最简洁地包含批量更新应发布到的行的ID?我不想手动制作大数据阵列,因为我需要更新近100个不同的行。

2 个答案:

答案 0 :(得分:1)

您可以更改输入字段名称,如下所示,您将在提交时获得配置数组:

<input required name="config[<?php echo $config_item['id'];?>]" value="<?php echo $config_item['val'] ; ?>"/>

答案 1 :(得分:0)

这是问题

name="val"

这应该是一个数组

name="val[]"