2010-02-27 6 views
1

Quelle est la meilleure façon de parcourir les résultats d'un appel ajax, d'envoyer un autre appel ajax et d'utiliser le résultat pour dessiner une table? J'ai beaucoup de mal à utiliser Jquery $ .ajax dans une boucle. Même quand j'ai mis async à faux. Je ne sais jamais vraiment quand le dernier bit de données est disponible. J'essaie de pousser toutes les données vers un objet contenant un tableau, mais j'ai besoin d'appeler la table pour dessiner quand le tableau est complètement chargé.Appels consécutifs Ajax dans une boucle

var that = this; 

jobdata.ajaxCall(function(json) { 
     $.each(json, function(p, pitem) { 

      var itemObj = that.getItembyId(pitem.ItemCode); 
      if (itemObj === undefined) 
      { 
       itemObj = new Item(pitem.ItemCode); 
      } 
      itemObj.loadItemDetail(function() { 
       that.itemlist.push(itemObj); 

      }); 


     }); 

Répondre

2

Puisque vous renvoyez une chaîne JSON, pourquoi ne pas mettre le résultat entier dans la chaîne JSON. Ensuite, vous ne faites qu'un seul appel AJAX. Le rappel de succès sera ensuite utilisé pour analyser l'objet JSON et remplir la table.

Peut-être quelque chose comme ceci:

$.ajax({ 
     url: url, 
     dataType: 'json',   
     success: callback 
    }); 

    function callback(table){ 
     $.each(table.row, function(row){ 
      //process each row  
     }); 
    } 
+0

J'aimerais, mais le premier résultat est d'un webservice, et le second est d'une base de données. Ils proviennent de deux sources différentes. –