Полный календарь динамических рабочих часов на выбор 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, я добавил его на консоль, чтобы увидеть значения.

0 ответов

Другие вопросы по тегам