现在玩这个太久了!
我正在使用codeigniter。
我试图从Ajax get请求中获取一些数据。我只想检查MySQL数据库,检查是否有一些数据计算给定日期。一个简单的真或假对于回归是好的。
这是我的请求,然后是PHP。 PHP确实会将正确的结果返回到$ data中,但是当它返回到Ajax请求时,会调用alert(data)并显示为空白......没有任何内容。
任何想法我做错了什么?
由于
function get_appointment_data(request_date){
$.ajax({
url: 'http://localhost/doctor_today/booking/retrieve_cal_data',
type: 'GET',
data: request_date,
success: function(data){
alert(data);
}
});
}
function retrieve_cal_data() {
$this->load->model('Booking_model');
$date = $this->input->get('date');
$data = $this->Booking_model->get_calendar_data($date);
return $data==null;
}
答案 0 :(得分:2)
我不熟悉codeigniter但你必须输出函数的结果。 'return'的实例必须使用'echo'将结果返回给ajax请求。
答案 1 :(得分:0)
您必须回显结果,否则您的ajax将不会收到结果,并且成功处理程序将不会执行。这是我将要用于这种情况,我正在使用更简单的.post函数来完成该任务,只有一个关键区别 - 我在其末尾指定'json',这意味着我将获得一个json对象作为来自我的.post的结果(您可以在Google上搜索此内容)。接下来的关键是使用PHP的json_encode函数将我想要的结果编码为json格式并回显其结果。我们不需要通过正常的'return'语句返回结果。所以......
剧本:
var url = 'http://example.com/ajax_function';
var data = null;
$.post(url, data, function(data) {
if(data.ok)
alert('Everything is fine!');
else
alert('Ops!');
}, 'json');
服务器端:
function retrieve_cal_data() {
$this->load->model('Booking_model');
$date = $this->input->get('date');
$data = $this->Booking_model->get_calendar_data($date);
echo json_encode(array('OK' => $data==null));
}
如果直接调用PHP函数,它应输出类似
的内容 { "OK": "true" }
稍后将转换为javascript数组
data[OK] = true;
您可以随意使用。
干杯, 斯坦。
P.S。我没有测试过代码,但它应该可以正常工作。