我使用PHP创建此输出:
foreach($ bk as $ blink){ $ out [“url”] [] = $ blink-> url; $ out [“anchor”] [] = $ blink->锚; }
$ json = Zend_Json :: encode($ out); echo($ json);
我想通过$ .ajax调用来接收和处理输出。
你能指点我一个关于javascript / jquery的多维数组的好教程,还是帮助我循环*通过json结果?我对此感到有些困惑。
谢谢!
<td>url-i</td><td>anchor-i</td>
。这一部分,我想出了如何。在url-i
和anchor-i
上添加正确的值是个问题。答案 0 :(得分: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>');
});
});
我没有运行该代码,因此可能存在一些缺陷,但这就是它的要点。
答案 1 :(得分: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);
如果没有,请告诉我,我们将讨论如何做到这一点。
答案 2 :(得分:0)
您可以查看任何模板框架,但对于这种情况,它可以检查这两个中的一个:pure by beebole或jquery pure html templates。
自己动手可能很诱人,但为什么要彻底改造井 - 我从我的经验中知道,框架的速度大约是自制代码的2倍。