0

我有一个非常简单的 CodeIgniter 项目,它可以完成一些简单的数据库工作。目前我有一个控制器方法可以删除数据库中的一个项目。在我看来,代码使用 jQuery ajax 对象来引用该控制器,然后通过其回调显示成功或失败。

问题是,尽管控制器工作正常(按预期删除数据库中的项目),但调用的是 ajax“错误”回调,而不是“成功”。

我确定我在这里遗漏了一些超级基本的东西......

这是我的控制器方法:

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!');}
        });
    }
});

任何答案尝试表示赞赏。任何正确的答案都会受到双重赞赏;)

谢谢!

4

2 回答 2

3

仅仅因为数据库逻辑正在工作,您可能会收到与其他问题相关的问题(也许是跨浏览器?)。要查看错误,请将您的错误函数更改为如下所示:

error: function (jqXHR, textStatus, errorThrown) {
   alert(textStatus);
   alert(errorThrown);
}
于 2012-05-28T20:41:20.300 回答
0

我要感谢 WojtekT 提醒我检查我在 Firebug 中的回复。我实际上收到了 PHP 错误的 500 状态代码。我无关的 $this->db->query(); 调用需要被删除。

现在一切都很好。

谢谢!

于 2012-05-28T20:43:09.150 回答