需求描述:从 PHP 拿过来一组三维数组,现在想要通过 JQ/JS 获取里面数据。
如何在页面中正确获取 {$layer} 的数组(不需要显示)?
JQ/JS 分别获取数据?
HTML
<volist name="layer" id="layer">
<php> print_r($layer);</php>
</volist>
打印结果
Array(
[id] => 2387
[image] => /Public/upload/users/2018/06-01/5b10f39be1305.jpg
[layername] =>
[floorid] => 1
[icon] => Array
(
[0] => Array
(
[posx] => 0.2541
[posy] => 0.3444
[onegoodscategoryid] => 868
[portnum] => 0
[portid] =>
[image] => /Public/upload/category/2018/04-12/5acee8b14f930.png
[iconname] => IC
[name] => 室内摄像机
)
[1] => Array
(
[posx] => 0.684
[posy] => 0.5306
[onegoodscategoryid] => 868
[portnum] => 0
[portid] =>
[image] => /Public/upload/category/2018/04-12/5acee8b14f930.png
[iconname] => IC
[name] => 室内摄像机
)
)
)
Array(
[id] => 2388
[image] => /Public/upload/users/2018/06-01/5b10f3d576921.jpg
[layername] =>
[floorid] => 2
[icon] => Array
(
[0] => Array
(
[posx] => 0.3859
[posy] => 0.474
[onegoodscategoryid] => 950
[portnum] => 0
[portid] =>
[image] => /Public/upload/category/2018/04-17/5ad565ce07a13.png
[iconname] => GS
[name] => 燃气感应器
)
)
)
3 回答
繁华开满天机
TA贡献1816条经验 获得超4个赞
你好,开发者,嘿嘿~
首先你可能需要了解一下,php变量赋值给js变量,正常情况下,可以这样:
<?php
$str = "val";
?>
<script type="text/javascript">
var str = "<?php echo $str;?>";
</script>
这样的话,是把一个简单的php变量赋给了js变量;如你问题提问的,如何把php数组赋值给js变量呢?他们两个语言中有一个相同的地方,就是同时可以操作json(因为语言不同,所以数组类型不能直接赋值),可以作如下改变:
<?php
$arr = [
0 => [
'name' => 'xiaoming',
'girlfrind' => ['xiaohong', 'xiaoli']
]
];
// 将数组转换为json
$json_arr = json_encode($arr);
?>
<script type="text/javascript">
// 此时json即为json类型
var json = "<?php echo $json_arr?>";
// 转换json类型变量为数组类型变量
// 即 此时arr为js数组类型的变量
var arr = JSON.parse( json );
</script>
这样就可以用js/jq操作js数组了;
注意:
- php变量赋值给js变量的时候,一定要加引号;如果不加引号,当php变量为空的时候,js会报一个致命错误;
- 赋值过程必须在
.php
文件类型下进行;如果是.js
的文件类型,是不能执行php代码的,js不支持php语言,但是php文件却支持js语言;
- 3 回答
- 0 关注
- 456 浏览
添加回答
举报
0/150
提交
取消