Задать вопрос
@anton99zel
29а класс средней школы №7

Как передать массив дат в javascript?

Есть скрипт pickadate, даты которые мне нужно отключить в календаре перечисляются так:
$('.pickadate-disable-dates').pickadate(
disable: [true, [2021, 2, 19], [2021, 2, 21], [2021, 3, 12]] 
});

Пробую из php массива передать даты в скрипт и ничего не выходит.
В php сейчас так:
$datejs[] = '[ '.$YY.', '.$MM.', '.$DD.' ], ';
.....
foreach ($datejs as $jsitem) {echo $jsitem;}; // [ 2021, 2, 19 ], [ 2021, 2, 19 ], [ 2021, 2, 20 ]......

Например, если передавать одно значение, то календарь работает:
var dArray = [2021, 2, 19];
или так
var dArray = new Date('2021, 2, 19');
$('.pickadate-disable-dates').pickadate(
disable: [true, dArray] 
});

Как передать массив дат из php в скрипт?
  • Вопрос задан
  • 164 просмотра
Подписаться 1 Простой 3 комментария
Решения вопроса 1
@MikUrrey
У вас происходит путаница со структурой из-за того, что вы пытаетесь создавать JSON "вручную".
Смотрите, тут все просто: вам нужно создать подобный по структуре массив в РНР, а потом сконвертировать его в JSON штатными средствами.
<?php
$datejs    = [];
//...
$datejs[] = [$YY, $MM, $DD];
//...
echo json_encode($datejs);

json_encode даст на выходе по сути валидный JS код, который можно потом присвоить переменной
echo '<script type="text\javascript">';
echo 'var disabled = ';
echo json_encode($datejs);
echo ';' . "\n"
echo '</script>';

или передать в ответ на AJAX-запрос.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы