我一直试图弄清楚如何做到这一点,但我找不到任何解决方案或答案。 我正在使用x-editable for bootstrap和codeigniter而且让我疯狂的问题是我不知道如何将x-editable与CI集成,当我有多个输入与相同的“pk”相关时页。
例如,我的材料只有一个“名称”和“评论”。当我尝试编辑单个值(例如,材质的“名称”)时,x-editable插件会发送一个我在后端捕获的值,然后发送到模型并进入de数据库。 这很好用,但是当我在我的数据库中编辑“name”列时,“comment”列同时改为“name”,而不是保留在实际值中。
Init 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);
}
我希望你能理解这一点,因为英语不是我的母语 谢谢!