我有以下空元素:
<div data-role="content">
<ul data-role="listview" id="contributionList2" data-inset="true" data-theme="c" data-dividertheme="a">
</ul>
</div>
我还有一个javascript函数,它有一个名为“arrayer”的数组,我试图发布到php脚本:
for(var i=0;i<arrayer.length;i++){
$.post('rpc4.php', {'test': arrayer[i] }, function(data){
$('#contributionList2').append(data);
});
}
javascript代码成功地将数组发布到文件rpc4.php:
<?php
$myvar = $_POST['test'];
echo '<li>'.$myvar.'</li>';
?>
但是当我尝试用所有数组元素填充listview“contributionList2”时,它只显示每一个数组元素,然后用数组中的下一个元素替换它,而不是在listview中显示它们。当调用javascript代码时,如何在listview中同时显示teh数组中的所有元素?
答案 0 :(得分:2)
将html()
更改为append()
。
html()
会在每次循环中替换<ul>
的内容;但是你希望这些东西能够积累起来。 append()
会将新元素填充为<ul>
的最后一个孩子。
但是,这不是最好的方法;除非你有充分的理由,如果你移动你的循环服务器端会更好:join()
你的arrayer
,将它作为参数发布到你的PHP脚本,然后explode()
它在PHP中,一次性生成所有内容。