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 originalvar Ajax = new Object();
Ajax.showMessage=1;
Ajax.Message='';
Ajax.Request = function(url, callbackMethod)
{
Page.getPageCenterX();
Ajax.request = Ajax.createRequestObject();
Ajax.request.onreadystatechange = callbackMethod;
Ajax.request.open("POST", url, true);
Ajax.request.send(url);
}
Ajax.setMessage = function (message)
{
Ajax.Message=message;
}
Ajax.setShowMessage = function (m)
{
Ajax.showMessage=m;
}
Ajax.createRequestObject = function()
{
var obj;
if(window.XMLHttpRequest)
{
obj = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
obj = new ActiveXObject("MSXML2.XMLHTTP");
}
return obj;
}
Ajax.CheckReadyState = function(obj)
{
if ( Ajax.showMessage == 0 )
{
document.getElementById('loadingbox').style.display = "none";
}
else
{
document.getElementById('loadingbox').style.display = "block";
}
if(obj.readyState < 4) {
document.getElementById('loadingbox').style.top = (Page.top + Page.height/2)-100;
document.getElementById('loadingbox').style.left = Page.width/2-75;
document.getElementById('loadingbox').style.position = "absolute";
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>';
}
if( obj.readyState == 4 )
{
if(obj.status == 200)
{
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>";
setTimeout('Page.loadOut()',2200);
return true;
}
else
{
document.getElementById('loadingbox').innerHTML = "HTTP " + obj.status;
}
}
}
tree.js
Código javascript
:
Ver originalvar K0=window,Q1=document;
function collpase(id,O2)
{
Q1.getElementById(id).style.display="none";
var str='symbol_'+id.replace(/_/g,'');
if (Q1.getElementById(str))
{
var mainid=id.replace(/_/g,'');
var symbolhref='<span id="symbol_'+mainid+'"><a href="javascript:expand(\''+id+'\','+O2+');" class="nodecls">'+UI.expand+'</a></span>';
Q1.getElementById(str).innerHTML=symbolhref;
}
}
function expandSearch(id,O2)
{
//loadChild(id,O2);
var strParam="services.php?method=getCat&id="+id+"&catid="+O2;
Ajax.Request(strParam,generateChildSearch);
Q1.getElementById(id).style.display="block";
var str='symbol_'+id.replace(/_/g,'');
if(Q1.getElementById(str))
{
var mainid=id.replace(/_/g,'');
var symbolhref='<span id="symbol_'+mainid+'"><a id="a_'+O2+'" href="javascript:collpase(\''+id+'\','+O2+');" class="nodecls">'+UI.collapse+'</a></span>';
Q1.getElementById(str).innerHTML=symbolhref;
}
}
function generateChildSearch()
{
Ajax.setShowMessage(1);
Ajax.setMessage("Loaded..");
if(Ajax.CheckReadyState(Ajax.request))
{
if(Ajax.request.readyState==4){
if(Ajax.request.status==200){
//alert(Ajax.request.responseText);
var response=eval('('+Ajax.request.responseText+')');
var str='';
var i=0;
if(response.data.length==0)
{
Q1.getElementById(response.id).style.display="none";
}
var mainid=response.id.replace(/_/g,'');
for(i=0;i < response.data.length;i++)
{
str+='<div id="'+mainid+''+i+'" style="padding-left:10px;">';
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>';
str+='<a id="name_'+response.data[i].id+'" style="" href="javascript:getData('+response.data[i].id+');" class="nodecls">'+response.data[i].name+'</a></div>';
str+='<div id="'+response.id+'_'+i+'" style="padding-left:30px;display:none"></div>';
}
//alert(response.id);
//alert(str);
var datoMostrar = Q1.getElementById(response.id);
// Q1.getElementById(mainid).innerHTML=str;
datoMostrar.innerHTML=str;}
}
}
}
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.