无法使用AJAX删除CodeIgniter中的记录

时间:2016-02-28 12:34:19

标签: php ajax codeigniter

我想删除CodeIgniter中的记录,但是收到错误。

这是我创建的模型:

public function delete_by_id($id) {
    $My_Multiple_Statements_Array = array('id' => $id, 'tipe' => $tipe);
    $this->db->where($My_Multiple_Statements_Array);
    $this->db->delete($this->table);
}

控制器:

public function ajax_delete($id) {
    $this->paket->delete_by_id($id);
    echo json_encode(array("status" => TRUE));
}

和AJAX:

function delete_person(id)
{
    if (confirm('Are you sure delete this data?'))
    {
        // ajax delete data to database
        $.ajax({
            url: "<?php echo site_url('paket/ajax_delete') ?>/" + id ,
            type: "POST",
            dataType: "JSON",
            success: function (data)
            {
                //if success reload ajax table
                $('#modal_form').modal('hide');
                reload_table();
            },
            error: function (jqXHR, textStatus, errorThrown)
            {
                alert('Error deleting data');
            }
        });
    }
}

为什么不能删除记录?

1 个答案:

答案 0 :(得分:1)

模型变量$tipe未定义。

如果它只是一个拼写错误,而不仅仅是从:

$My_Multiple_Statements_Array = array('id' => $id, 'tipe' => $tipe);

应该是:

$My_Multiple_Statements_Array = array('id' => $id);

如果$tipe是您的财产,请使用$this->tipe

如果你想在ajax请求中传递$tipe而不是那样:

$.ajax({ 
url: "<?php echo site_url('paket/ajax_delete') ?>/", 
type: "POST", 
data: "id="+id+"&tipe="+tipe,
dataType: "JSON", 
success: function (data) { 
//if success reload ajax table $('#modal_form').modal('hide'); reload_table(); 
},

在使用tipe

时,在ajax数据中传递id

您可以使用$_POST来控制控制器中的两个值:

您的控制器:

public function ajax_delete() { 
    $id = $_POST["id"];
    $tipe = $_POST["tipe"];
    $this->paket->delete_by_id($id,$tipe); 
    echo json_encode(array("status" => TRUE)); 
}

您的型号:

public function delete_by_id($id,$tipe) { 

    $My_Multiple_Statements_Array = array('id' => $id, 'tipe' => $tipe); 
    $this->db->where($My_Multiple_Statements_Array); 
    $this->db->delete($this->table); 
}