我有一个包含3个值的php数组 . 在foreach基础上,我执行以下代码:
<script>
$(document).ready(function(){
<?php foreach($messaggi as $messaggio){ ?>
$.get("scrollrtl.php", function(data){
$('.messaggi').after(data);
});
<?php } ?>
});
</script>
scrollrtl.php现在只是回应'Hello World' . 结果是第一次'Hello World'被回显一次,然后两次,循环以7次'Hello World'结束而不是3次 . 我认为这是因为我不会在每次$ get之后重置数据,但我不知道该怎么做 .
有帮助吗?
编辑: scrollrtl.php:
<div id="scroll_left" class="messaggi jscroller_horz">
<ul>
<li id="messaggio">This is the text 1</li>
</ul>
</div>
array results:
Array ( [id] => 1
[nome] => Prova di messaggio che scorre
[testo] => Questo è un messaggio che scorre ...
[template] => scrollrtl )
Array ( [id] => 3
[nome] => ci ritento
[testo] => vediamo se questa volta la cosa...
[template] => scrollrtl )
Array ( [id] => 6
[nome] => MESSAGGIO
[testo] => Messaggio
[template] => scrollrtl )
一步一步地尝试了代码,我看到第一次被回复一次,然后重复...
2 回答
解决了! . 有必要将last()添加到javascript代码中 . After()在EACH匹配元素之后插入数据,因此重复行 .
变
您的问题与javascript中的“data”变量无关,因为每个函数调用都是本地的(因为它定义为函数的参数) . 您发布的javascript按预期工作 .
因此,我看到它的方式,有两个可能的原因:
scrollrtl.php文件返回的内容超出了您的预期 .
$ messaggi数组包含3个以上的条目 .
您可以在进入foreach循环之前发布scrollrtl.php文件的源代码和$ messsaggi(var_dump($ messaggi)变量的var_dump输出吗?