2011-01-26 16 views
0

json配列をJqueryに読み込みます。問題はありません。多分、 "子"配列を持つ多次元配列をどのように解析するのですか?JQueryで多次元json配列を解析する

echo $jc . '(' . json_encode($forum) . ')'; 

注:$のJCがjsoncallbackある

PHPは、JSONがデータベース

$STH = $DBH->query("SELECT FID FROM flist WHERE ParentID='0'"); 
$STH->setFetchMode(PDO::FETCH_OBJ); 
while($row = $STH->fetch()) : 
$farray[$row->FID]['FID'] = $row->FID; 
    $RTH = $DBH->query("SELECT FID FROM flist WHERE ParentID= ".$row->FID." "); 
    $RTH->setFetchMode(PDO::FETCH_OBJ); 
    $fquerycount = $RTH->rowCount(); 
    if($fquerycount!=0): 
    while($res = $RTH->fetch()) : 
    $farray[$row->FID]['FCHILD'][$res->FID] = $res->FID; 
    endwhile; 
    endif; 
endwhile; 

ので、エンコード、それを引っ張ってから、 "作成" します。 OK、私はそれが必要としなければならないと確信している - - 他の.each子配列のための()ループ

$.getJSON("http://127.0.1/jtest3.php?start=0&jsoncallback=?", function(data){ 
$.each(data, function(i,item){   
$('#testit').append('<li'+item.FID+'<ul><li>'+item.FCHILD+'</li><ul></li>'); 
}); 
}); 

それは私には思われるが、:

今どのようにあなたはここでそれを「読み」のですか?コードは、子を表示する以外のすべての面で正常に機能します。子配列から[$ res-> FID]キーを削除するとOKですが、明らかに最後のDBエントリしか取得できません。問題は、子配列が2つ以上のエントリであることです。 1つの親(最初のクエリは$farray[$row->FID]['FID'] = $row->FID;を生成します)を作成し、次に2番目のクエリを子にします。$farray[$row->FID]['FCHILD'][$res->FID] = $res->FID;この配列に2、10、20などがあります。その2番目のループをどのように実行しますか?大いに感謝します。おかげ

答えて

0

チェックこのスレッドWriting Multidemisional Array jQuery

このコメントより具体的には、「JavaScriptのには多次元配列はありませんが、あなたはその要素が配列の配列持つことができる」

はそうです、あなたが持っているの各配列要素が配列である場合はそれをチェックし、それを繰り返します。