没有错误,但在jquery Ajax中没有成功

时间:2013-08-08 21:00:30

标签: php jquery ajax codeigniter

我正在对我的控制器进行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);
    }
}

的script.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
});

2 个答案:

答案 0 :(得分: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 Views

答案 1 :(得分: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
});