在javascript中处理多层json数组

时间:2011-08-16 22:25:17

标签: php javascript jquery

我有一个我想要处理的简单数组。它由两部分组成。一组vid_ids和一个名为page的元素。我最初使用for循环来完成vid_id数组,但是现在我添加了page元素,我不太清楚如何处理它。任何人都有任何想法

PHP

$array=array();
$sql = 'SELECT * from video LIMIT 0,9';
$stmt = $conn->prepare($sql);
$result=$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
    $array[]=htmlspecialchars( $row['vid_id'], ENT_NOQUOTES, 'UTF-8' );
}
$data['vid_array']=$array;
$data['page']=1;
$out = json_encode($data);
print $out;

的Javascript

$.getJSON("load_live.php?t=" + (new Date()), function(json) {  
    for(vid_array.i=0; i < json.length; vid_array.i++) {
        $('#element').append('<div id="'+json.vid_array[i]+'"></div>');
    }
    $('#element').append(json.page);
});

Json输出

  

{ “vid_array”:[ “3si7bxwk8ftpnvsw1gcf6giyxxch46sn”, “jch0dfepnu9hn0uw3m283g429mcj63q6”, “arh3xeklxjlztffxtybnucfnzosetgr8”, “6duy7xxj274w2cmhauth1tj933ck5i6z”, “9xx6pefa52s38ez77s5nbhz6jywbohc6”, “4eslxxl4etj5smhhr3wymc6pr8kys10c”, “4db1hp47be4auel633okbg6l884u0ef5”, “incwb9juxug8h986r9xt738ru4n0camd”, “vmsoqx03vppflh646b3au6jrlzt6mkej”], “网页”: 1}

1 个答案:

答案 0 :(得分:1)

看起来你的JavaScript for循环有点不对劲。试试这个

for (var i = 0; i < json.vid_array.length; i++) {
    $('<div>').attr('id', json.vid_array[i]).appendTo('#element');
}

另外,正如我的评论所述,您不需要在那里使用htmlspecialchars()。只需将vid_id值分配给数组

即可
$array[] = $row['vid_id'];