codeigniter 根据其 ID 批量更新特定表单字段

codeigniter batch update of specific form field based on its ID

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

<?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>

现在 - 我有每个 "val" 应该绑定到存储在数据属性 data-id 中的行的 ID,因为我不确定如何执行 update_batch() 并将 val 插入适当的 table 行。

这是我的控制器:

$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');
}

如何最简洁地包含批量更新应 post 到的行的 ID?我不想手动创建大数据数组,因为我需要更新近 100 行不同的行。

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

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

问题来了

name="val"

这应该是一个数组

name="val[]"