Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/09/2012, 21:54
manuelf0710
 
Fecha de Ingreso: septiembre-2011
Ubicación: Bogota Colombia
Mensajes: 11
Antigüedad: 12 años, 7 meses
Puntos: 0
crear una lista de codigos y ejecutar peticiones ajax una a una

necesito construir un ajax que procese unas lista de peticiones a partir de un array de javascript o de unos datos obtenidos ejemplo tengo 5 codigos y estos codigos se deben pasar a un ajax que cuando la solicitud este completa llamara al siguiente codigo, puedo tener esos codigos en un array como dije antes y recorrerlos con un for o manejarlos de forma independiente.

el codigo que tengo es dos archivos ajax.js y tree.js

ajax.js
Código javascript:
Ver original
  1. var Ajax = new Object();
  2. Ajax.showMessage=1;
  3. Ajax.Message='';
  4. Ajax.Request = function(url, callbackMethod)
  5. {
  6.     Page.getPageCenterX();
  7.     Ajax.request = Ajax.createRequestObject();
  8.     Ajax.request.onreadystatechange = callbackMethod;
  9.     Ajax.request.open("POST", url, true);
  10.     Ajax.request.send(url);
  11. }
  12. Ajax.setMessage = function (message)
  13. {
  14.     Ajax.Message=message;
  15. }
  16. Ajax.setShowMessage = function (m)
  17. {
  18.     Ajax.showMessage=m;
  19. }
  20. Ajax.createRequestObject = function()
  21. {
  22.     var obj;
  23.     if(window.XMLHttpRequest)
  24.     {
  25.         obj = new XMLHttpRequest();
  26.     }
  27.     else if(window.ActiveXObject)
  28.     {
  29.         obj = new ActiveXObject("MSXML2.XMLHTTP");
  30.     }
  31.     return obj;
  32. }
  33. Ajax.CheckReadyState = function(obj)
  34. {
  35.     if ( Ajax.showMessage == 0 )
  36.     {
  37.         document.getElementById('loadingbox').style.display = "none";
  38.     }
  39.     else
  40.     {
  41.         document.getElementById('loadingbox').style.display = "block";
  42.     }  
  43.     if(obj.readyState < 4) {
  44.         document.getElementById('loadingbox').style.top = (Page.top + Page.height/2)-100;
  45.         document.getElementById('loadingbox').style.left = Page.width/2-75;
  46.         document.getElementById('loadingbox').style.position = "absolute";
  47.         document.getElementById('loadingbox').innerHTML = '<table border=0 cellpadding=0 cellspacing=1 width=100 bgcolor="#000000"><tr><td align=center bgcolor="#ffffff" class=loading height="22px" style="font-family:verdana;font-size:10px">Loading..</td></tr></table>';
  48.     }
  49.     if( obj.readyState == 4 )
  50.     {
  51.         if(obj.status == 200)
  52.         {
  53.             document.getElementById('loadingbox').innerHTML = "<table border=0 cellpadding=0 cellspacing=1 width=100 bgcolor=#000000><tr><td align=center class=loading bgcolor=#ffffff height='22px' style='font-family:verdana;font-size:10px'>"+Ajax.Message+"</td></tr></table>";
  54.             setTimeout('Page.loadOut()',2200);
  55.             return true;
  56.         }
  57.         else
  58.         {
  59.             document.getElementById('loadingbox').innerHTML = "HTTP " + obj.status;
  60.         }
  61.     }
  62. }
tree.js
Código javascript:
Ver original
  1. var K0=window,Q1=document;
  2. function collpase(id,O2)
  3. {
  4.  Q1.getElementById(id).style.display="none";
  5.  var str='symbol_'+id.replace(/_/g,'');
  6.  if (Q1.getElementById(str))
  7.  {
  8.   var mainid=id.replace(/_/g,'');
  9.   var symbolhref='<span id="symbol_'+mainid+'"><a href="javascript:expand(\''+id+'\','+O2+');" class="nodecls">'+UI.expand+'</a></span>';
  10.   Q1.getElementById(str).innerHTML=symbolhref;
  11.  }
  12. }
  13.  
  14. function expandSearch(id,O2)
  15. {
  16.   //loadChild(id,O2);
  17.  var strParam="services.php?method=getCat&id="+id+"&catid="+O2;
  18.  Ajax.Request(strParam,generateChildSearch);
  19.   Q1.getElementById(id).style.display="block";
  20.  var str='symbol_'+id.replace(/_/g,'');
  21.  if(Q1.getElementById(str))
  22.  {
  23.    var mainid=id.replace(/_/g,'');
  24.    var symbolhref='<span id="symbol_'+mainid+'"><a id="a_'+O2+'" href="javascript:collpase(\''+id+'\','+O2+');" class="nodecls">'+UI.collapse+'</a></span>';
  25.    Q1.getElementById(str).innerHTML=symbolhref;
  26.  }
  27. }
  28.  
  29.  
  30.  
  31.  
  32. function generateChildSearch()
  33. {
  34.  Ajax.setShowMessage(1);
  35.  Ajax.setMessage("Loaded..");
  36.  if(Ajax.CheckReadyState(Ajax.request))
  37.  {
  38.  if(Ajax.request.readyState==4){
  39.  if(Ajax.request.status==200){
  40.   //alert(Ajax.request.responseText);
  41.   var   response=eval('('+Ajax.request.responseText+')');
  42.   var str='';
  43.   var i=0;
  44.   if(response.data.length==0)
  45.   {
  46.    Q1.getElementById(response.id).style.display="none";
  47.   }
  48.   var mainid=response.id.replace(/_/g,'');
  49.   for(i=0;i < response.data.length;i++)
  50.   {
  51.    str+='<div id="'+mainid+''+i+'" style="padding-left:10px;">';
  52.    str+='<span id="symbol_'+mainid+''+i+'"><a id="a_'+response.data[i].id+'" href="javascript:expand(\''+response.id+'_'+i+'\','+response.data[i].id+');" class="nodecls">'+UI.expand+'</a></span>';
  53.    str+='<a id="name_'+response.data[i].id+'" style="" href="javascript:getData('+response.data[i].id+');" class="nodecls">'+response.data[i].name+'</a></div>';
  54.    str+='<div id="'+response.id+'_'+i+'" style="padding-left:30px;display:none"></div>';
  55.   }
  56.   //alert(response.id);
  57.   //alert(str);
  58.   var datoMostrar = Q1.getElementById(response.id);
  59.  // Q1.getElementById(mainid).innerHTML=str;
  60.   datoMostrar.innerHTML=str;}
  61.   }
  62.  }
  63. }

lo que quiero es que la funcion generateChildSearch() tome las variables que dije de los codigos para lanzar por ajax el envio de parametros lo he logrado el problema es que en esta funcion generateChildSearch() no puedo ejecutar esa lista de peticiones, verificar cuando el status de la peticion es 200 y asi enviar la proxima peticion les agradezco cualquier ayuda gracias.

Última edición por zerokilled; 09/09/2012 a las 22:06 Razón: aplicar bbcode al código