Вопрос про формирование календаря.
Есть ajax запрос, который передает дату в функцию php:
$('.order_delivery').click(function(event){
event.preventDefault();
let dataDelivery_in_html = $(this).attr('data-delivery');
$('.overlay-calendar').hide(500);
$('.calendar-show').hide(500);
$.ajax({
url: '/Basket/DeliveryMontazhDate',
data: {dateMontazh: dataDelivery_in_html},
type: 'POST',
success: function(res){
// Показывает эту дату в кнопке
$('.date-popup-calendar-montazh').html(res);
},
error: function(){
alert('Ошибка! Попробуйте позже');
}
});
});
функция php, которая принимает эту дату и выводит ее в кнопку с классом (date-popup-calendar-montazh):
public function ajaxDeliveryMontazhDate(){
if(!empty($_POST['dateMontazh'])){
$date_montazh = $_POST['dateMontazh'];
return $date_montazh;
}
}
Помимо этого, есть еще 3 функции php, которые формируют сам календарь:
1)
public function getMonthMontazh($month, $year, $events = array(), $count){
// Тут формируется сам календарь с датами
// Сюда мне нужно как-то передать переменную $date_montazh с датой, которую я отсылаю через ajax
}
2)
public function getIntervalMontazh($start, $end, $events = array()){
// Тут вызывается предыдущая ф-ция, которая генерирует календарь с датами в цикле
do {
$out .= self::getMonthMontazh($curent[0], $curent[1], $events, $count);
} while ($begin == true);
}
3)
Кликаем по кнопке и ajax-ом показываем календарь:
$('.date-popup-calendar-montazh').click(function(event){
event.preventDefault();
$('.overlay-calendar-montazh').show(500);
$('.calendar-show-montazh').show(500);
$.ajax({
url: '/Basket/ShowCalendarMontazh',
type: 'POST',
success: function(res){
// Вставляем результат функции php getIntervalMontazh() - (html код с календарем)
// в html блок (calendar-montazh-wrap)
$('.calendar-montazh-wrap').html(res);
},
error: function(){
alert('Ошибка! Попробуйте позже');
}
});
});
По ajax запросу выше, показываем конечный код html календаря
public function ShowCalendarMontazh(){
// Тут вызываем ф-цию getIntervalMontazh() и передаем ей параметры,
// чтобы выводил календарь только на 3 месяца
return $this->getIntervalMontazh(date('n.Y'), date('n.Y', strtotime('+2 month')));
}
Собственно вопрос: когда я передаю дату напрямую, в ф-цию, которая формирует календарь, то через консоль я вижу, что она есть, но дело в том, что эта ф-ция вызывается в другой ф-ции, а та уже в третьей и дата теряется...
Как мне передать эту дату так, чтобы при вызовах во всех следующих функциях она продолжала существовать?