2013-08-29 2 views
0

По существу, у меня есть список клиентов и календарь рядом с этим. Идея состоит в том, что при клике на клиенте он находит доступность и затем возвращает эту информацию через плагин календаря, чтобы показать, какие дни доступны. Ниже мой код в функции «Клик»:Используйте AJAX Response в функции Javascript

$.ajax({ 
    type: "GET", 
    url: "inc/available_dates_search.php", 
    data: string, 
    cache: false, 
    success: function(response){ 

     var result = eval(response); 

     $('#date_calendar').glDatePicker({ 
      selectableDates: result 
     }); 
    } 
}); 

потребности свойство «selectableDates» быть в формате [{ date: new Date(2013, 8, 15) }], когда я выполняю alert(result)это дает мне правильный вывод. Это заставляет меня думать, что проблема заключается в передаче значения datepicker. Невозможно передать этот ответ датепике, и если это так, как это можно сделать?

Я использую glDatePicker, который можно найти здесь: http://glad.github.io/glDatePicker/

Большое спасибо заранее.

+0

Это проблема с тем, что Ajax не получил правильный результат или плагин календаря не принял ваш вызов? Просьба уточнить, что не работает, и связать/пометить подключаемый модуль. – Bergi

+0

Привет @Bergi, Ajax, кажется, дает правильный результат, как, как упоминалось, когда я выполняю предупреждение о результате, он показывает правильную информацию. Так что просто пытайтесь передать это значение в плагин календаря, который он не работает. Благодарю. –

+0

Затем, пожалуйста, скажите, какой плагин вы используете. [править] ваш вопрос. – Bergi

ответ

0

Выстрел в темноте, так как я никогда не использовал glDatePicker

Проблема, вероятно, тот факт, календарь уже существует, и она не будет обновляться. Вам нужно будет уничтожить его и повторно инициализировать. Или если API имеет способ обновить даты, вызовите этот метод.

Если это правильно написано и имеет метод уничтожения, что-то вроде этого должно работать.

$('#date_calendar').glDatePicker("destroy").glDatePicker({ 
    selectableDates: result 
}); 
+0

Спасибо за ваш ответ! :) К сожалению, мой код уже делает это, поскольку я думал, что у меня была такая же мозговая волна, прежде чем публиковать здесь. –

+0

У GLDatepicker нет метода уничтожения. https://github.com/glad/glDatePicker/blob/master/glDatePicker.js (для любого партнера Google, который попадает на этот пост в конце игры). – silencedmessage

0

Попробуйте использовать обратный вызов, оценка ответа может занять слишком много времени.

$.ajax({ 
type: "GET", 
url: "inc/available_dates_search.php", 
data: string, 
cache: false, 
success: function(response){ 
    (function(res, callback){ 
     // ... your code to process "res" 
     result = xyz; 
     callback(result); 
    })(response, function(data){ 
     $('#date_calendar').glDatePicker({ 
      selectableDates: data 
     }); 
    }); 

}