使用jQuery为每个元素运行.post()

时间:2013-01-02 08:15:40

标签: php javascript jquery ajax .post

我在表格中的每个元素上运行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的目的是因为我将运行查询以在这些表元素中获取加载图像。)

4 个答案:

答案 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;
        });
    });
   });