如何在jquery中迭代另一个数组中的数组中的数据

时间:2013-04-25 06:39:37

标签: php javascript jquery

我在php

中的另一个数组中有一个数组
Array
(
    [common_search] => Array
        (
            [BusinessName] => Sun Shine Vision
            [Address] => Amulia St Madhava Pharmacy Jn
            [Phone] => 
        )

    [cache_table] => Array
        (
            [Details] => Speedtrax,Ample's Bldg Off Banerji Rd., Amulia St,
        )

)

我必须使用Jquery在我的结果页面中将它们作为单独的数组进行迭代,因为我想分别将这些数组显示在不同的div中以设置为html,如何从两个数组中获取数据(common_search,cache_table) )分开。在我的HTML中,我想设置$("#common_searchdiv").html(common_search)$("#cache_tablediv").html(cache_table)等数据。提前致谢

3 个答案:

答案 0 :(得分:2)

当json编码命名数组时,它们将被解析为javascript中的对象,所以你可以这样做:

<script>
   var data = <?=json_encode($data);?>
</script>

因为现在javascript中的数据将成为一个对象,所以你可以直接访问

这样的属性
<script>
data["common_search"]["BusinessName"];
</script>

或用

迭代它

$.each

答案 1 :(得分:1)

您无法直接将数据作为数组传递。做数组的json_encode。然后在jquery端解析json,然后运行每个/ for循环。在键的匹配上你可以添加条件。

做这样的事情

var result = $.parseJSON(jsonstring);//jsonstring is your json encoded string.

for(var k in result) {
   if (k == 'common_search') {
       $("#common_searchdiv").html(result[k]); 

   } 
   if (k == 'cache_table') {
       $("#cache_tablediv").html(result[k]);
   }
}

供您参考

var jsonstring = {"common_search":{"strBusinessName":"Sun Shine Vision","strAddress":"Amulia St Madhava Pharmacy Jn","intPhone":""},"cache_table":{"Details":"Speedtrax,Ample's Bldg Off Banerji Rd., Amulia St,"}};
var jsonstring = JSON.stringify(jsonstring).replace(/\'/, "/'");
var result = $.parseJSON(jsonstring);//jsonstring is your json encoded string.

for(var k in result) {

   if (k == 'common_search') {
       alert(result[k]['strBusinessName'])
       $("#common_searchdiv").html(result[k]['strBusinessName']); 

   } 
   if (k == 'cache_table') {
       $("#cache_tablediv").html(result[k]);
   }
}

答案 2 :(得分:0)

请试试这个。

<?php
$arr_temp = Array
(
    'common_search' => Array
        (
            'BusinessName' => "Sun Shine Vision",
            'Address' => "Amulia St Madhava Pharmacy Jn",
            'Phone' => ''
        ),

    'cache_table' => Array
        (
            'Details' => "Speedtrax,Ample's Bldg Off Banerji Rd., Amulia St,"
        )

);

?>
<script>
$(document).ready(function() {
    var data_arr = <?php echo json_encode($arr_temp); ?>;

    $.each(data_arr,function(item){     
        $.each(data_arr[item],function(myitem){
            console.log(myitem);
        });
    });
});
</script>