0

我正在对我的控制器进行 ajax 调用,但我的成功警报没有显示,我也没有在控制台中收到错误。我不知道现在如何进行。

控制器 - 速率

function graph($userid, $courseid){

    $i_am_admin = $this->logged_in->logged_as_admin();
    if($this->session->userdata('id') == $userid || $i_am_admin ){
        $this->load->model('rate_model');
        $graph_data = array();

        if($query = $this->rate_model->graphRate($userid, $courseid)){
            $data['rate']  = $query;
        }
        $data['graph_json'] = json_encode($query);

        $data['content'] = 'rate_graph_view';
        $this->load->view('templates/template', $data);
        return json_encode($query);
    }
}

脚本.js

$('.profileimg').click(function(){
    $.ajax({
        url: url, // url = http://localhost/herexamen/project/rate/graph/6/4
        type:'POST',
        dataType: 'json',
        success: function(output_string){
            alert(output_string);
            alert("yes");
        } // End of success function of ajax form
    }); // End of ajax call
});
4

2 回答 2

0

ajax拨打电话时,您应该回显要发送的内容或响应,并且您正在使用 return 试试这个

echo json_encode($query);

为什么在制作 json 时才加载视图

function graph($userid, $courseid){

        $i_am_admin = $this->logged_in->logged_as_admin();

        if($this->session->userdata('id') == $userid || $i_am_admin ){
            $this->load->model('rate_model');
            $graph_data = array();

        if($query = $this->rate_model->graphRate($userid, $courseid)){
            $data['rate']  = $query;
        }
        $data['graph_json'] = json_encode($query);

        $data['content'] = 'rate_graph_view';
       $data['viewloaded']= $this->load->view('templates/template', $data,true);
        echo json_encode($data);
        die();
    }
}

还有第三个可选参数可让您更改函数的行为,以便它以字符串形式返回数据,而不是将其发送到浏览器。如果您想以某种方式处理数据,这可能很有用。如果将参数设置为 true(布尔值),它将返回数据。默认行为是 false,将其发送到您的浏览器。如果要返回数据,请记住将其分配给变量

CI 视图

于 2013-08-08T21:04:05.147 回答
0

您没有检查 ajax 调用是否失败

无论如何,附加的代码都不是解决方案,但可以阐明您的问题。请注意,我将该error部分添加到 ajax 请求中。

这个调用的结果是什么?

$('.profileimg').click(function(){
    $.ajax({
            url: url,
        type:'POST',
            dataType: 'json',
            success: function(output_string){
                    alert(output_string);
                    alert("yes");
            },
            error: function(jqXHR, textStatus) {
                alert( "Request failed: " + textStatus );
            }
    }); // End of ajax call
});
于 2013-08-08T21:10:29.740 回答