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

gracias por la informacion ajuste un poco el codigo de acuerdo a lo que me dices, lo modifique de esta manera

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,arr)
  15. {
  16. * //loadChild(id,O2);
  17. *var strParam="services.php?method=getCat&id="+id+"&catid="+O2;
  18. *Ajax.Request(strParam,generateChildSearch(arr));
  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(arr)
  33. {
  34. *//el tamaño del array siempre es de 5 cuando no hay un codigo obtenido
  35. *//previamente en la consulta llegara como cero
  36. *padre5=arr[0];
  37. *padre4=arr[1];
  38. *padre3=arr[2];
  39. *padre2=arr[3];
  40. *padre1=arr[4];
  41.  
  42.  
  43. *Ajax.setShowMessage(1);
  44. *Ajax.setMessage("Loaded..");
  45. *if(Ajax.CheckReadyState(Ajax.request))
  46. *{
  47. *if(Ajax.request.readyState==4){
  48. *if(Ajax.request.status==200){
  49. * //alert(Ajax.request.responseText);
  50. * var * response=eval('('+Ajax.request.responseText+')');
  51. * var str='';
  52. * var i=0;
  53. * if(response.data.length==0)
  54. * {
  55. * *Q1.getElementById(response.id).style.display="none";
  56. * }
  57. * var mainid=response.id.replace(/_/g,'');
  58. * for(i=0;i < response.data.length;i++)
  59. * {
  60. * *str+='<div id="'+mainid+''+i+'" style="padding-left:10px;">';
  61. * *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>';
  62. * *str+='<a id="name_'+response.data[i].id+'" style="" href="javascript:getData('+response.data[i].id+');" class="nodecls">'+response.data[i].name+'</a></div>';
  63. * *str+='<div id="'+response.id+'_'+i+'" style="padding-left:30px;display:none"></div>';
  64. * }
  65. * //alert(response.id);
  66. * //alert(str);
  67. * var datoMostrar = Q1.getElementById(response.id);
  68. *// Q1.getElementById(mainid).innerHTML=str;
  69. * datoMostrar.innerHTML=str;
  70. *//aqui ingreso cada codigo segun se complete la parte 'tree1_0_2' esta misma
  71. *//estructura la uso para obtener los demas nodos del arbol
  72. *expandSearch('tree1_0_2',padre5,'');
  73. *//a partir de aqui tendria que verificar nuevamente que la peticion se complete
  74. *//y lanzar la siguiente peticion con la misma estructura.
  75. *}
  76. * }
  77. *}
  78. }

en el codigo anterior expandSearch('tree1_0_2',padre5,''); me deberia armar nuevamente la peticion y cuando esta peticion se complete lanzar la nueva, el problema es que me toca volver a colocar las condiciones
if(Ajax.request.readyState==4){
if(Ajax.request.status==200){
envio un valor en vacio puesto que el array ya lo habia pasado antes entonces las variables ya tienen un valor
y de esta forma no funciona. que estoy haciendo mal? ¿debo crear una nueva funcion ajax que maneje de manera independiente el objeto ajax que tengo en el fuente ajax.js?