如何在Javascript中访问PHP数组?

kyo*_*kyo 5 javascript php arrays json laravel

我有一个非常简单的PHP数组

$array = [];
$array['a'] = '1';
$array['b'] = '2';
$array['c'] = '3';
Run Code Online (Sandbox Code Playgroud)

PHP

如果我dd($array);出去了

array:3 [?
  "a" => "1"
  "b" => "2"
  "c" => "3"
]
Run Code Online (Sandbox Code Playgroud)

如果我解码dd(json_encode($array));,我得到了这个

"{"a":"1","b":"2","c":"3"}"
Run Code Online (Sandbox Code Playgroud)

JS

我希望能够在我的Javascript中访问此变量,所以我尝试过


1

的console.log($阵列);

我有

$ array未定义


2

我正在使用Laravel. {{ }} == echo

的console.log( '{{$阵列}}');

我有

500 Internal Error

htmlentities()期望参数1为字符串,给定数组(查看:/Users/bheng/Sites/portal/resources/views/cpe/index.blade.php)


3

console.log('{{json_encode($ array)}}');

我有

要加载的页面,但数据看起来很糟糕

{"a":"1","b":"2","c":"3"}


4

console.log(JSON.parse('{{json_encode($ array)}}'));

我有

未捕获的SyntaxError:位于1的JSON中出现意外的令牌


console.log(JSON.parse('{{json_decode($ array)}}'));

我有

json_decode()期望参数1为字符串,给定数组


6

console.log('{{json_decode($ array)}}');

我有

json_decode()期望参数1为字符串,给定数组


目标

我只是希望能够在Javascript中以Javascript Array或JSON的形式访问我的数组.

有人可以请我填一下吗?

ric*_*aan 7

在Blade中,{{ $variable }}将输出字符串的转义版本,通过htmlentities()以使其在HTML中安全使用.你想要一个未转义的版本.你可以用{!! $variable !!}它:

console.log({!! json_encode($array) !!});
Run Code Online (Sandbox Code Playgroud)

您不需要在其周围添加引号,json_encode()输出有效的javascript对象.它会在必要时添加引号,如果您自己添加它们,您将在javascript中获取JSON 字符串,而不是JSON 对象.