我已经检查了PHP函数的日志,并且我已经正确格式化了从该方法返回的JSON数据。AJAX正在调用它并返回,为响应变量获取一个null值。有什么想法吗?这是AJAX代码:
$.ajax({
type: "POST",
url: "index.php/controllerFile/get_standby",
data: 'id=' + $(this).attr('id'),
success: function(response){
console.log('response is: ' + response); //It is null here
$.colorbox({'href':'index.php/config/view/standby' + response.urlData,'width':1000,'title':'Standby People'});
},
dataType:'json'
});
以下是PHP函数:
function get_standby()
{
$id = $this->input->post('id');
$this->load->model('teetime');
$url['urlData'] = ($this->teetime->get_standby_by_id($id));
$printing = json_encode($url);
log_message('error', 'JSON ' . $printing);
return $printing;
}
尝试在PHP中使用echo而不是return。
echo $printing;
我建议在Chrome中打开开发者工具(查看>开发者>开发者工具)并选择网络选项卡。当您提出AJAX发布请求时,它应该在那里添加一个条目("路径"列应该是"index.php/controllerFile/get_standby","方法"列应该有"post")。单击请求所在的行,然后检查"响应"选项卡以确保您的JSON存在。
如果响应为空,那么问题出在PHP代码上(您可能没有将该函数返回的JSON打印到页面上)。否则,您的JavaScript就会出现问题。