2

我在 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)and之类的数据$("#cache_tablediv").html(cache_table)。提前致谢

4

3 回答 3

2

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

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

因为现在javascript中的数据将是一个对象,所以你可以直接访问属性,比如

<script>
data["common_search"]["BusinessName"];
</script>

或迭代它

$.each

于 2013-04-25T06:45:14.160 回答
1

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

做这样的事情

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]);
   }
}
于 2013-04-25T06:42:24.520 回答
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>
于 2013-04-25T07:00:36.380 回答