我一直试图弄清楚如何做到这一点,但我找不到任何解决方案或答案。我正在为 bootstrap 和 codeigniter 使用 x-editable,让我发疯的问题是,当我有多个与相同“pk”相关的输入时,我不知道如何将 x-editable 与 CI 集成页。
例如,我的材料只有一个“名称”和“评论”。当我尝试编辑单个值(例如,材料的“名称”)时,x-editable 插件会发送我在后端捕获的值,然后发送到模型和数据库。这很好用,但问题是,当我在我的数据库中编辑“名称”列时,“注释”列同时用“名称”值更改,而不是保持实际值。
初始化 x-editable 插件
$('.inline-editable').editable({
selector: 'a.editable-click',
type: 'text',
url: 'admin/material/update/',
title: 'Click para editar',
});
这是 x 可编辑的输入
<tr class="entity-row row-fluid inline-editable" data-section="material" data-pk="1">
<td>
<a href="#" id="name-12" class="entity-material editable-click" data-name="name" data-type="text">Name of the material</a>
</td>
<td>
<a href="#" id="material-12" class="entity-material-comment editable-click" data-name="comment" data-type="textarea">This is the comment of the material</a>
</td>
</tr>
后端控制器方法
public function update() {
$this->db_data['id'] = $this->input->post('pk');
$this->db_data['name_value'] = $this->input->post('value'); // Should be the name $value
$this->db_data['comment_value'] = $this->input->post('value'); // This should be the comment $value
// I try to capture this values for the db columns name to be edited
// But i know this can't be possible because
// they have the same $_POST variable name.
$this->db_data['db_column_name'] = $this->input->post('name');
$this->db_data['db_column_comment'] = $this->input->post('name');
$this->entity_model->update_entity($this->db_table, $this->db_data);
}
后端模型方法
function update_entity($table, $data) {
$this->table = $table;
$query .= $this->db->set($data['db_column_name'], $data['name_value']);
$query .= $this->db->set($data['db_column_comment'], $data['comment_value']);
$query .= $this->db->where($this->table.'.id', $data['id']);
$query .= $this->db->update($this->table);
}
我希望你能理解这一点,因为英语不是我的母语谢谢!