我有一个包含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&#39;”。结果是第一次“Hello World&#39;被回复一次,然后两次,循环结束七次&#39; Hello World&#39;在页面上而不是三个。我认为这是因为我不会在每次收费后重置数据,但我不知道该怎么做。
任何帮助?
编辑: 的 scrollrtl.php:
<div id="scroll_left" class="messaggi jscroller_horz">
<ul>
<li id="messaggio">This is the text 1</li>
</ul>
</div>
数组结果:
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 )
逐步尝试代码,我看到第一次回复一次然后重复......
答案 0 :(得分:1)
解决!有必要将last()添加到javascript代码中。 After()在EACH匹配元素之后插入数据,因此重复行。
$('.messaggi').after(data);
变为
$('.messaggi').last().after(data);
答案 1 :(得分:0)
您的问题与javascript中的“data”变量无关,因为每个函数调用都是本地的(因为它定义为函数的参数)。您发布的javascript按预期工作。
因此,就我看来,有两种可能的原因:
你可以在进入foreach循环之前发布scrollrtl.php文件的源代码和$ messsaggi(var_dump($ messaggi)变量的var_dump输出吗?