Полный календарь динамических рабочих часов на выбор AJAX
Мне нужно установить рабочее время на основе определенного идентификатора, установленного опцией выбора. Я также использую тот же выпадающий список для обновления событий для этого конкретного идентификатора.
AJAX работает нормально, однако я не могу установить параметры динамически, хотя события отображаются нормально. Вот мой код
$('#select').change(function() {
var events = {
url: "cal/load.php",
type: 'POST',
data: {
id: $(this).val()
}
}
var bizHours = "";
$.ajax({
type: 'POST',
url: 'test.php',
data: {id:$(this).val()},
success: function(data)
{
bizHours = data;
}
})
$('#calendar').fullCalendar('option', {
businessHours: bizHours
});
$('#calendar').fullCalendar('removeEventSource', events);
$('#calendar').fullCalendar('addEventSource', events);
$('#calendar').fullCalendar('refetchEvents');
}).change();
Это возвращение из test.php:
[{"dow":"1","start":"10:00:00","end":"18:00:00"},
{"dow":"2","start":"10:00:00","end":"18:00:00"},
{"dow":"3","start":"10:00:00","end":"18:00:00"},
{"dow":"4","start":"09:00:00","end":"17:00:00"},
{"dow":"5","start":"09:00:00","end":"17:00:00"}]
Если я установлю это вручную так:
$('#calendar').fullCalendar('option', {
businessHours: [{"dow":"1","start":"10:00:00","end":"18:00:00"}
.....
});
Тогда это нормально, я думаю, что переменная bizHours
не устанавливается. Как я могу обновить свои рабочие часы на основе этого выбора?
Обновление: Переместив функции в функцию успеха из-за асинхронной природы AJAX, он все равно имеет тот же эффект, рабочие часы не обновляются.
Вот обновленный код:
$('#learn-ins').change(function() {
var events = {
url: "cal/load.php",
type: 'POST',
data: {
id: $(this).val()
}
}
bizHours = "";
$.ajax({
type: 'POST',
url: 'test.php',
data: {id:$(this).val()},
success: function(data)
{
bizHours = data;
$('#calendar').fullCalendar('option', { businessHours: bizHours });
$('#calendar').fullCalendar('removeEventSource', events);
$('#calendar').fullCalendar('addEventSource', events);
$('#calendar').fullCalendar('refetchEvents');
}
});
});
Test.php возвращает правильный JSON, я добавил его на консоль, чтобы увидеть значения.