Получить массив php в javascript (laravel)

Я хочу передать массив php в код javascript. когда я использую вот так:

var resData = "{{ json_encode($data['calendarItems']) }}";

или это :

 var resData = "{{ $data['calendarItems'] }}";

в обоих результат:

[{"title":"rfvd vc","expired_at":"2018-12-31 00:00:00"}] //formatting

и ошибка возврата JSON.parse. не могу получить массив

var resData = <?= $data['calendarItems']?>;
Zain Farooq 12.02.2019 07:48
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
1
721
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Здесь есть две проблемы. Во-первых, вы цитируете вывод json, а во-вторых, результат экранируется в объекты html.

Убираем кавычки и выводим результат в необработанном виде:

var resData = {!! json_encode($data['calendarItems']) !!};

Отсутствие кавычек вокруг результата избавит от необходимости использовать JSON.parse(), поскольку переменная с самого начала будет содержать правильный json.

Узнайте больше о неэкранированных данных в колонке в руководстве.

Возможно, стоит добавить разницу между отображением json в тегах скрипта и json в атрибутах (где требуется экранирование) stackoverflow.com/questions/4227895/…

Travis Britz 12.02.2019 07:51

Когда вы делаете {{ }}, он преобразует строковые элементы внутри в объекты html. поэтому { будет преобразован в &quot;

Я предлагаю использовать пакет это, который имеет более четкую реализацию передачи данных в качестве используемых переменных js в вашем файле блейда.

Вы можете попробовать это:

var mapData = JSON.parse('<?php echo json_encode($latLng) ?>');

где $latLng — массив PHP.

Здесь нет необходимости использовать JSON.parse(). Просто выведите ответ из PHP без кавычек и это уже будет валидный json.

M. Eriksson 12.02.2019 10:11

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