0

我一直试图弄清楚如何做到这一点,但我找不到任何解决方案或答案。我正在为 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);
}

我希望你能理解这一点,因为英语不是我的母语谢谢!

4

0 回答 0