已经玩这个太久了!
我在用codeigniter。
我正在尝试从Ajax get请求中获取一些数据。简单地说,我想检查一个MySQL数据库,以检查是否有一些数据在那里计算给定的日期。返回一个简单的true或false就可以了。
下面是我的请求,后面是PHP。PHP确实将正确的结果返回到$data中,但是当它返回到Ajax请求时,将调用警报(数据)并显示为空白...那里什么都没有。
你知道我做错了什么吗?
谢谢
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;
}发布于 2012-03-05 02:50:52
我不熟悉codeigniter,但是你必须输出函数的结果。Instade of ' return‘必须使用'echo’将结果返回给ajax请求。
发布于 2012-03-06 12:08:11
您必须回显结果,否则ajax不会收到结果,成功处理程序也不会执行。这是我在这个例子中要用到的,我对这个任务使用了更简单的.post函数,但有一个关键的区别--我在它的末尾指定了' json‘,这意味着我将从我的.post中得到一个json对象(你可以在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;你可以随心所欲地使用它。
干杯,斯坦。
附注:我还没有测试代码,但它应该可以很好地工作。
https://stackoverflow.com/questions/9557661
复制相似问题