2010-11-20 22 views
1

私はPHPで、この出力を作成する:json多次元配列とjquery?

foreachの($点滅など$ BK){ $アウト[ "URL"] [] = $ blink-> URL。 $ out ["anchor"] [] = $ blink-> anchor; }

$ json = Zend_Json :: encode($ out); echo($ json);

出力を$ .ajaxコールで受信して処理したいとします。

javascript/jqueryを使用した多次元配列に関する素晴らしいチュートリアルを教えてください.Jsonの結果をループ*するのに役立つでしょうか?私はちょっと混乱してしまった。

ありがとうございました!

  • 私はそれらをテーブルに置こうとしていますので、<td>url-i</td><td>anchor-i</td>を使用します。この部分は、私はどのように考え出した。 url-ianchor-iに正しい値を設定することが問題です。

答えて

1

私はそのためのJSON出力のようなものになります想像:あなたはをループすることができますその場合は、その後、彼らは同じ長さ(そして重要なのは同じインデックス)のものであろう

{'url': ['url1', 'url2', ... ], 
'anchor': ['anchor1', 'anchor2', ... ]} 

と2つのうちの1つはjQuery.each()を使用しています。

$.getJSON('jsonapp.php', function(data) { 
    $.each(data.url, function(index, url) { 
    var anchor = data.anchor[index]; 
    $('#mytable').append('<tr><td>' + url + '</td><td>' + anchor +'</td></tr>'); 
    }); 
}); 

私はそのコードを実行していないため、いくつかの欠陥があるかもしれませんが、それはその要点です。

0

どのテンプレートフレームワークでも見ることができますが、この正確なケースでは、これらの2つのうちの1つをチェックするのに便利です:pure by beeboleまたはjquery pure html templates

私は自分の経験から、フレームワークが約2倍高速で、自己作成コードであることを知っています。

1

PHPは、それ自身でcast objects into arraysを試すことができます。単純なものの場合、通常は正常に動作します。

多次元配列の場合、Javascriptは他の多くの上位レベルのプログラミング/スクリプト言語とあまり変わりありません。実際、多次元配列のオンラインチュートリアルはうまくいくでしょう。多次元配列は単純に配列の配列です。

クライアント側の文字列を受け取ったら、解析するだけです。 jQueryはits own methodですが、JSON.parseを使用できます。その後、どのように配列を設定したかに基づいて、このようなことをしたいでしょう。

<? $count = count($json_parsed['url']); for($i = 1; $i < $count; $i++) : ?> 
<td><?=$json_parsed['url'][$i];?></td> 
<td><?=$json_parsed['anchor'][$i];?></td> 
<? endfor; ?> 

これは哲学的には最良の方法ではありません。オブジェクト全体があり、テーブルを作成したい場合は、連想配列(他のプログラミング言語のハッシュテーブルのようなもの)で表されるオブジェクトの配列を作成するのが最善の方法です。 PHPは、オブジェクトを連想配列にネイティブに変換しようとします。私はZend_Json::encodeが自動的にそれをする場合私は驚かないだろう。そうであれば、簡単に引っ張りたいかもしれません:

echo Zend_Json::encode($bk); 

私に教えてください、私たちはそれを行う方法について話します。