#javascript #php #jquery #arrays
#javascript #php #jquery #массивы
Вопрос:
Я пытаюсь отключить даты в pickadate.js календарь с массивом, который я передал со своего контроллера (используя Laravel4).
Я могу отключить дату просто отлично, отправив статическую дату в javascript с контроллера (используя Jeffrey Ways great PHP-vars-to-JS):
JavaScript::put([
'disabledDates' => array(2014,6,20)
]);
Мой файл .js:
disable: [
[2014,7,19],
[2014,7,12],
disabledDates
],
Однако это отключает только первую дату, и если я попытаюсь передать несколько дат в свой массив, только они не будут отключены в календаре. Я попытался выполнить следующее:
JavaScript::put([
'disabledDates' => array(2014,6,20, 2014,6,21)
]);
The pickadate.js скрипт принимает только указанный выше формат для отключения дат, и я думаю, что это противоречит тому, как в идеале должен быть построен массив?
Кто-нибудь может мне помочь с правильным форматом для этого?
Заранее благодарю вас.
Комментарии:
1. Итак, первый работает правильно?, я имею в виду это:
'disabledDates' => array(2014,6,20)
2. Эй, Роберт, да, это работает! Однако я не могу ввести несколько дат таким образом, поскольку он принимает только первую часть.
3. Если вы используете второй способ и помещаете в консоль javascript:
disabledDates
каков результат?4. Он выводит следующее: [2014, 6, 20, 2014, 6, 20]
Ответ №1:
Продолжение здесь, поскольку мне удалось решить проблему с помощью друга:
Подход заключается в:
В моем контроллере:
$dates = Booking::lists('date');
JavaScript::put([
'disabledDates' => $dates
]);
В моей модели:
public function getDateAttribute($value)
{
return explode('-', date('Y-m-d', strtotime($value)));
}
Это возвращает даты в виде массива, который затем может использовать календарь. Надеюсь, это кому-нибудь поможет :).