Вы должны повторить результат, иначе ваш ajax не получит результат и обработчик успеха не будет выполнен.Вот что я собираюсь использовать для этого случая: я использую более простую функцию .post для этой задачи с одним ключевым отличием - в конце я указываю 'json', что означает, что я получу объект json какрезультат из моего .post (вы можете найти Google для этого).Следующий ключ - использовать кодирование результата, который я хочу получить, в формате json, используя PHP-функцию json_encode, и выводить его результат.Нам не нужно возвращать результат с помощью обычного оператора 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;
, который вы можете использовать по своему усмотрению.
Cheers, Stan.
PSЯ не проверял код, но он должен работать.