我在表格中的每个元素上运行jQuery .post
时遇到问题。以下是我的代码
HTML
<table>
<tr>
<td class="load_img"></td>
<td class="load_img"></td>
<td class="load_img"></td>
<td class="load_img"></td>
<td class="load_img"></td>
<td class="load_img"></td>
<td class="load_img"></td>
<td class="load_img"></td>
</tr>
</table>
的javascript
$(document).ready(function(){
$("td.load_ads").html("<img src='/classified_ads4free/images/icons/ajax-loader.gif'>");
$("td.load_ads").each(function(){
var loading=$(this);
$.post('/classified_ads4free/self_coded_helpers/jpost_get_ads.php',function(data)
{
loading.html(data);
});
});
});
.POST PHP脚本
<?php
$index=rand(0,10);
echo $index;
?>
所以我在这里要做的是让我的表中的每个<td>
加载一个随机数,但我现在的问题是所有<td>
加载了相同的随机数。而不是每个人都有一个0-10的随机数。
(这只是为了说明,我知道可以使用jquery生成一个随机数,但我需要做.post
的目的是因为我将运行查询以在这些表元素中获取加载图像。)
答案 0 :(得分:0)
这可能是缓存问题 由于您的请求始终相同,浏览器只会发送一次请求 解决方案是:
1 /在php脚本中添加一个html标题,以便不缓存答案:
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
2 /在请求中添加随机参数
答案 1 :(得分:0)
这似乎是一个缓存问题。
最简单的解决方法是在网址中添加一个随机数。
var d = new Date();
$.post( '/classified_ads4free/self_coded_helpers/jpost_get_ads.php'
+ '?_=' + d.getTime()
+ '&_=' + Math.random(),
function( data ) { /* stuff */ }
);
答案 2 :(得分:0)
你试过这种方式:
$(document).ready(function(){
$("td.load_ads").html("<img src='/classified_ads4free/images/icons/ajax-loader.gif'>");
$.post('/classified_ads4free/self_coded_helpers/jpost_get_ads.php',function(data){
$.each($("td.load_ads"), function(){
var loading=$(this);
loading.html(data);
});
});
});
I think you should iterate in the success function.
答案 3 :(得分:0)
谢谢大家的帮助。得到了解决。我所做的是创建一个人工变量索引。每次我使用新循环启动.post时都会增加索引。不知道为什么,但它有点像我希望它的运作方式。我的新javascript代码如下,任何人都需要它。
$(document).ready(function(){
$("td.load_ads").each(function(){
var loading=$(this);
var index=0;
$(this).html("<img src='/classified_ads4free/images/icons/ajax-loader.gif'>");
$.post('/classified_ads4free/self_coded_helpers/jpost_get_ads.php',{index:index},function(data){
loading.html(data);
index=index+1;
});
});
});