0

簡単なデータベース作業を行う非常に単純な CodeIgniter プロジェクトがあります。現在、データベース内のアイテムを削除するコントローラー メソッドがあります。私の見解では、コードは jQuery ajax オブジェクトを使用してそのコントローラーを参照し、そのコールバックを通じて成功または失敗を表示します。

問題は、コントローラーが正常に動作する (期待どおりに DB 内のアイテムを削除する) にもかかわらず、「成功」ではなく 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

Firebug で応答を確認するように通知してくれた WojtekT に感謝します。実際、PHP エラーの 500 ステータス コードを受け取っていました。私の余分な $this->db->query(); コールを削除する必要がありました。

今ではすべてがうまく機能しています。

ありがとう!

于 2012-05-28T20:43:09.150 に答える