2012-05-28 35 views
0

我有一個非常簡單的笨項目,做一些簡單的數據庫工作。目前我有一個控制器方法,刪除數據庫中的項目。在我看來,代碼使用jQuery ajax對象來引用該控制器,然後通過其回調顯示成功或失敗。笨+ jQuery的阿賈克斯成功運行,但錯誤回調被稱爲

的問題是,儘管控制器正常工作(如刪除預計在DB的項目),阿賈克斯「錯誤」回調被調用,而不是「成功」。

我敢肯定,我想的東西超級基本在這裏...

這裏是我的控制器方法:

public function delete_note() 
{ 
    $this->load->helper('url'); 
    $this->load->model('auth/user', 'User'); 
    $this->load->database(); 

    $note_id = $this->input->post('id'); 

    $this->db->delete('admin_notes', array('id' => $note_id)); 
    $this->db->query(); 

    $this->output->set_status_header('200'); // Attempting to force the issue 
} 

這裏是視圖中的代碼:

$('.delete_note').each(function(){ 
    var current = this; 

    this.onclick = function(event) 
    { 
     var note_id = this.title; 

     $.ajax({ 
      type: "POST", 
      url: "/admin/delete_note", 
      data: { id: note_id }, 

      success: function(data) { alert('I never see this!');}, 
      error: function() { alert('I *always* see this!');} 
     }); 
    } 
}); 

任何答案企圖讚賞。任何正確的答案都倍加讚賞;)

謝謝!

+3

您是否嘗試使用Firebug或Chrome開發者工具來查看您獲得的網絡響應? – WojtekT

+0

嘗試開啓codeigniter中的日誌記錄以查看問題可能是什麼。 – ErJab

回答

3

只是因爲數據庫邏輯是工作,你可能會收到與別的問題(跨瀏覽器吧?)。要查看錯誤,改變你的誤差函數是這樣的:

error: function (jqXHR, textStatus, errorThrown) { 
    alert(textStatus); 
    alert(errorThrown); 
} 
+0

謝謝你。我會改變我的錯誤功能,以包含這些重要信息,以解決未來潛在的問題。非常感激。 –

0

我要感謝WojtekT提醒我檢查我在Firebug的反應。實際上,我收到了500個PHP錯誤的狀態碼。無關的$ this-> db-> query();呼叫需要被移除。

現在一切正常。

謝謝!

+0

另外,要指出的是,查詢函數接受一個參數(當然是字符串查詢),這是錯誤源自的地方。 –