#javascript #php #arrays #json #laravel
#javascript #php #массивы #json #laravel
Вопрос:
У меня есть массив PHP dd($iperfProfiles);
array:1 [▼
0 => "ipv6-udp-upload"
]
Пытаюсь получить к нему доступ в JS
Я пробовал
var iperfProfiles = "{{ json_encode($iperfProfiles) }}";
console.log(iperfProfiles);
return false;
Я получаю
IPERF:1699 [amp;quot;ipv6-udp-uploadamp;quot;]
Как мне в принципе превратить массив PHP в массив JS?
Комментарии:
1. Вы должны распечатать его, не экранируя вывод, используя
var iperfProfiles = {!! json_encode($iperfProfiles) !!};
— Есть также директива JSON bladevar iperfProfiles = @json($iperfProfiles);
, которая, вероятно, является вашим лучшим выбором.2. var iperfProfiles = {!! json_encode($iperfProfiles) !!}; без кавычек.
Ответ №1:
//in PHP
$iperfProfiles = json_encode($iperfProfiles);
//and then in JS
var iperfProfiles = JSON.parse({!!$iperfProfiles!!});
Комментарии:
1. Вызов неопределенной функции App Http Controllers json_string()
2. Это была просто опечатка, извините за это.
Ответ №2:
просто используйте директиву @json blade и передайте ей необработанные данные php, не кодируя их в JSON.
в шаблоне блейда:
const profiles = "@json($profiles)"
Ответ №3:
попробуйте просто удалить кавычки
var iperfProfiles = {{ json_encode($iperfProfiles) }};
console.log(iperfProfiles);