鍍金池/ 問答/HTML5  PHP  HTML/ HTML中如何處理PHP傳遞的三維數(shù)組

HTML中如何處理PHP傳遞的三維數(shù)組

需求描述:
從 PHP 拿過來一組三維數(shù)組,現(xiàn)在想要通過 JQ/JS 獲取里面數(shù)據(jù)。

  1. 如何在頁面中正確獲取 {$layer} 的數(shù)組(不需要顯示)?
  2. JQ/JS 分別獲取數(shù)據(jù)?

HTML

<volist name="layer" id="layer">
    <php> print_r($layer);</php>
</volist>

打印結(jié)果

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] => 室內(nèi)攝像機
                )

            [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] => 室內(nèi)攝像機
                )

        )
)
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] => 燃氣感應(yīng)器
                )
        )
)
回答
編輯回答
爆扎

volist嵌套使用

2018年1月31日 17:05
編輯回答
哚蕾咪

你好,開發(fā)者,嘿嘿~

首先你可能需要了解一下,php變量賦值給js變量,正常情況下,可以這樣:

<?php 

    $str = "val";
 ?>

 <script type="text/javascript">
     var str = "<?php echo $str;?>";
 </script>

這樣的話,是把一個簡單的php變量賦給了js變量;如你問題提問的,如何把php數(shù)組賦值給js變量呢?他們兩個語言中有一個相同的地方,就是同時可以操作json(因為語言不同,所以數(shù)組類型不能直接賦值),可以作如下改變:

<?php 
    $arr = [
        0 => [
            'name'      => 'xiaoming',
            'girlfrind' => ['xiaohong', 'xiaoli']
        ]
    ];

    // 將數(shù)組轉(zhuǎn)換為json
    $json_arr = json_encode($arr);
 ?>

 <script type="text/javascript">
    // 此時json即為json類型
    var json = "<?php echo $json_arr?>";
    // 轉(zhuǎn)換json類型變量為數(shù)組類型變量
    // 即 此時arr為js數(shù)組類型的變量
    var arr = JSON.parse( json );
 </script>

這樣就可以用js/jq操作js數(shù)組了;

注意

  1. php變量賦值給js變量的時候,一定要加引號;如果不加引號,當(dāng)php變量為空的時候,js會報一個致命錯誤;
  2. 賦值過程必須在.php文件類型下進行;如果是.js的文件類型,是不能執(zhí)行php代碼的,js不支持php語言,但是php文件卻支持js語言;
2018年7月25日 10:18
編輯回答
真難過
<script>
var layer = JSON.parse('{:json_encode($layer)}');
</script>
2017年12月17日 14:03