[英]How can I access PHP array inside my Javascript?
我有一个非常简单的PHP数组
$array = [];
$array['a'] = '1';
$array['b'] = '2';
$array['c'] = '3';
如果我dd($array);
我得到了
array:3 [▼
"a" => "1"
"b" => "2"
"c" => "3"
]
如果我解码dd(json_encode($array));
, 我懂了
"{"a":"1","b":"2","c":"3"}"
我希望能够在我的Javascript中访问此变量,所以我尝试过
的console.log($阵列);
我有
$ array未定义
我正在使用Laravel。 {{ }} == echo
的console.log( '{{$阵列}}');
我有
500 Internal Error
htmlentities()期望参数1为字符串,给定数组(查看:/Users/bheng/Sites/portal/resources/views/cpe/index.blade.php)
console.log('{{json_encode($ array)}}');
我有
要加载的页面,但数据看起来很糟糕
{"a":"1","b":"2","c":"3"}
console.log(JSON.parse('{{json_encode($ array)}}'));
我有
未捕获的SyntaxError:位于1的JSON中出现意外的令牌
console.log(JSON.parse('{{json_decode($ array)}}'));
我有
json_decode()期望参数1为字符串,给定数组
console.log('{{json_decode($ array)}}');
我有
json_decode()期望参数1为字符串,给定数组
我只是希望能够在Javascript中以Javascript Array或JSON的形式访问我的数组。
有人可以请我填一下吗?
在Blade中, {{ $variable }}
将输出字符串的转义版本,通过htmlentities()
传递,以便在HTML中使用。 你想要一个未转义的版本。 你可以用{!! $variable !!}
{!! $variable !!}
为此:
console.log({!! json_encode($array) !!});
你不需要在它周围添加引号, json_encode()
输出一个有效的javascript对象。 它会在必要时添加引号,如果您自己添加它们,您将在javascript中获取JSON 字符串 ,而不是JSON 对象 。
在Laravel你可以使用{!! !!}跳过实体转义
console.log({!! json_encode($array) !!});
只需将其作为json数据回显并在javascript中使用它。
<?php
$array = [];
$array['a'] = '1';
$array['b'] = '2';
$array['c'] = '3';
?>
<script>var jsArr = <?=json_encode($array);?>;
alert(jsArr);</script>
编辑,因为澄清你正在使用刀片。 那应该是:
<?php
$array = [];
$array['a'] = '1';
$array['b'] = '2';
$array['c'] = '3';
?>
<script>var jsArr = {!! json_encode($array) !!};
alert(jsArr);</script>
{...}是字符串的转义版本。 但是你需要unescapt字符串。 这可以通过使用{!! ...... !!}
首先,您必须了解PHP在服务器端运行并在客户端运行javascript,因为PHP会做出响应,您应该打印如下脚本:
echo "<script>
var sheison = JSON.parse(".dd(json_encode($array)).");
console.log(sheison);
</script>";
我没有测试代码,只是想法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.