簡體   English   中英

CodeIgniter:使用AJAX從MySQL數據庫刪除數據

[英]CodeIgniter: Delete data from MySQL DB using AJAX

我正在一個項目中,在管理面板中我有一個查詢表,我想允許管理員刪除其中的任何一個。 我的查看代碼如下:

<button type="button" class="btn btn-danger delbtn" onclick="delenquiry(<?php echo $value->id;?>)">Delete this Enquiry</button>

我的ajax代碼是:

function delenquiry(id) {
    if (confirm("Are you sure?")) {
        $.ajax({
            url: base_url + 'loginc/delenq',
            type: 'post',
            data: id,
            success: function () {
                alert('ajax success');
            },
            error: function () {
                alert('ajax failure');
            }
        });
    } else {
        alert(id + " not deleted");
    }
}

控制器代碼為:

 public function delenq() {

        $id = $this->input->post('id');
        $this->logins->delenqs($id);
    }

模型代碼是:

public function delenqs($id) {
    $this->db->where('id', $id);
    $this->db->delete('enquiry');

}

我在尋找答案,但沒有任何答案。 誰能告訴我我的代碼有什么問題。 提前致謝...

您需要從ajax請求更改中傳遞ID

 data: id,

 data: {id:id},

對於數據,您必須提供一個數組。 例如=> data:{name_params:10}您可以在php中獲取數據$id = $this->input->post('name_params'); $ id的值= 10

您遇到的問題是,您的ID不是POST的可用密鑰。 您將需要定義{id : id} 但是,我認為使用MVC方法更有意義:

$.ajax({
    url: base_url + 'loginc/delenq/'+ id, //maintains the (controller/function/argument) logic in the MVC pattern
    type: 'post',
    success: function(data){
        console.log(data);
    },
    error: function(a,b,c){
        console.log(a,b,c);
    }
});

然后,您可以為控制器函數指定一個參數:

public function delenq($id){
    if($id)
        return $this->logins->delenqs($id);
    return false;
}

最后,您的模型可以使用一些固定器,以便它也可以正確返回。

public function delenqs($id) {
    $this->db->delete('enquiry', array('id' => $id));
    return $this->db->affected_rows() > 1 ? true:false;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM