2010-11-20 36 views
1

創建這個輸出用PHP:json multidimentional數組和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', ... ]} 

如果是這樣的話,那麼他們將是相等的長度(和重要等於索引)的,你可以循環遍歷其中一個使用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

你可以看看任何模板框架,但對於這個確切的情況它有用於檢查其中之一的接縫:pure by beebolejquery pure html templates

自己做這件事可能是誘人的,但爲什麼要重新改造這個井 - 根據我的經驗,我知道框架的速度比自制代碼快兩倍。

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); 

如果沒有,讓我知道,我們將討論如何做到這一點。