我正在对我的控制器进行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
});
答案 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,将其发送到您的浏览器。 如果要返回数据,请记住将其分配给变量
答案 1 :(得分:0)
无论如何,附加的代码不是解决方案,但可以解释您的问题。请注意,我将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
});