Не удается получить данные из запроса на получение Ajax - PullRequest
1 голос
/ 04 марта 2012

Играю с этим слишком долго!

Я использую codeigniter.

Я пытаюсь получить некоторые данные из запроса на получение Ajax.Просто я хочу проверить БД 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;
}

Ответы [ 2 ]

2 голосов
/ 04 марта 2012

Я не знаком с codeigniter, но вы должны вывести результат функции.В случае возврата, вы должны использовать echo для возврата результата в запрос ajax.

0 голосов
/ 06 марта 2012

Вы должны повторить результат, иначе ваш 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Я не проверял код, но он должен работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...