0

我正在尝试在 ajax 调用中一次从数据库中更新和获取更新的行

JS中的就绪函数

$("button[name='teacher_lock_exam']").on(ace.click_event, function () {
    var current_exams_id = $(this).attr('id');

    bootbox.confirm("Are you sure you want to lock the exam? <br/><br/>" +
        "Locked exam cannot be modified until exam committee unlock it.", function (result) {
        if (result) {

            lock_exam(current_exams_id);
            bootbox.alert("Your Exam has been Locked !<br/><br/> Contact with Exam committee to modify that exam again.");
        }
    });

});
function lock_exam(current_exams_id) {

    $.ajax({
        url: "teacher_internal_exam_management/lock_exam/" + current_exams_id,
        type: "POST",

        dataType: "json",
        success: function (row) {
            alert('success');
            alert(row[0].access_status);


        }

    });


}

我的teacher_internal_exam_management 控制器

public function lock_exam($current_exams_id)
{

    $this->load->model('teacher_internal_exam_management_model');
    $this->teacher_internal_exam_management_model->lock_exam($current_exams_id);

    echo (json_encode($this->teacher_internal_exam_management_model->get_exam_details($current_exams_id)));

}

我的teacher_internal_exam_management_model 模型

function lock_exam($current_exam_id, $data)
    {
        $this->db->query("update current_exams set access_status = 'locked' where current_exams_id='".$current_exam_id."'");

    }
function get_exam_details($exam_id)
    {
        $query = $this->db->query("select * from  current_exams
                                where
                                    current_exams_id = '" . $exam_id . "'

                            ");

        return $query->result();
    }

现在ajax调用正在更新数据,但是控制器中的echo没有返回该行。意味着ajax的成功函数没有运行。为什么这不起作用?代码有问题吗?

4

2 回答 2

1

模型的最后一行:

return $query->result();

http://ellislab.com/codeigniter/user-guide/database/results.html

This function returns the query result as an array of objects, or an empty array on failure.

这是返回一个对象数组

你必须适当地转换它 -

return $query->result_array();
于 2013-10-03T05:50:28.910 回答
-2

根据http://www.php.net/manual/en/class.mysqli-result.php上的 php 手册,我没有看到 mysqli_result 类型的 result() 方法。我认为你需要使用

return $query->fetch_all();

代替

return $query->result();
于 2013-10-03T05:46:03.037 回答