2014-07-20 46 views
0

可以在循环中使用ajax调用吗?
在这里我想,当我单击按钮,然后ajax调用将被调用10次。下面是我的代码。不知道这是不是好的做法。'for'循环内的Ajax调用

但我需要这种类型的解决方案。我该怎么做?谢谢。

HTML:

<button>Click</button> 

AJAX:

$(document).ready(function(e) { 
      $('button').click(function(){ 
        for(var i=1;i<=10;i++){  //is it possible ? 
        $.ajax({ 
         type:'POST', 
         url : "a.php", 
         data:'a='+$('.div1').text(), 
         success: function(result){ 
           $('.div1').html(result); 
          }        
        }); 
        } 
       }); 
     }); 

a.php只会:

 <?php 
      if(!isset($_POST['a']) || $_POST['a'] == ""){ 
       $a = 0; 
      } 
      else{ 
       $a = $_POST['a'] + 1; 
      } 
      echo $a; 
      exit(); 
     ?> 
+0

这是。你为什么需要它?你要在服务器端处理什么? –

+0

你现在的代码有什么问题? –

+1

你为什么要这么做?你一遍又一遍地调用同样的东西。你确定你不想在它里面运行带有AJAX的'$('。div1')。each()'?尽管如此,你可以从'$('。div1')。'()''Array.join()''.text()'并使用AJAX发送一次到服务器。 – PHPglue

回答

1

试试这个:

$(document).ready(function(e) { 
     var ajaxCalled=0; 
     $('button').click(function(){ 
       $.ajax({ 
        type:'POST', 
        url : "a.php", 
        data:'a='+$('.div1').text(), 
        success: function(result){ 
          $('.div1').html(result); 
          ajaxCalled++; 
          if(ajaxCalled<=10){ 
           $('button').trigger('click'); 
          } 
          else{ 
           ajaxCalled=0; 
           return false; 
          } 
         }    
       }); 
      }); 
    }); 
+0

感谢兄弟:) @Amin Jafari – user3857235

+0

不客气,请点击我答案旁边的复选标记接受答案,如果这个答案实际上是你要找的。 ;) –