Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/01/2012, 11:18
Avatar de malakian
malakian
 
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
problema con peticiones

Hola forer@s, quiero explicarles con mi codigo para hacerme entender mejor.

Tengo esta funcion

Código Javascript:
Ver original
  1. function requestj(str) {
  2.    myAjax.open("POST", "ajax_entrada2.php");
  3.    myAjax.onreadystatechange = resultj;
  4.    myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  5.    myAjax.send("search="+str);
  6. }
  7. function resultj(){
  8.     if (myAjax.readyState == 4) {
  9.         var liste = myAjax.responseText;
  10.         var cible = document.getElementById("tag_update").innerHTML = liste;
  11.         document.getElementById("tag_update").style.display = "block";
  12.     }else{
  13.         var cible = document.getElementById("tag_update").innerHTML = 'Buscando...';
  14.         document.getElementById("tag_update").style.display = "block";
  15.     }
  16. }

Eso funciona muy bien, pero despues de llamar esa funcion, debo llamar otra que es la siguiente:
Código Javascript:
Ver original
  1. function asiento_entrada(){
  2.  
  3.     if (document.form1.comprobanteurl.value != ""){
  4.  
  5.         comprobanteurl = "&comprobanteurl="+document.form1.comprobanteurl.value;
  6.  
  7.     }else{
  8.  
  9.         comprobanteurl = "";
  10.  
  11.     }
  12.  
  13.     extra="&programaurl="+document.form1.programaurl.value;
  14.  
  15.     myAjax.open("GET","tmp_entrada.php?cod_articuloajax="+document.form1.cod_articuloajax.value+extra);
  16.  
  17.     myAjax.onreadystatechange = result_asiento;
  18.  
  19.     myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  20.  
  21.     myAjax.send();
  22.  
  23. }
  24.  
  25. function result_asiento(){
  26.  
  27.     if (myAjax.readyState == 4) {
  28.  
  29.         liste = myAjax.responseText;
  30.  
  31.         arreglo = liste.split("|@");
  32.  
  33.         if (arreglo[0] != "error"){
  34.  
  35.              frames.asientos.document.getElementById("tablaasientos").innerHTML = arreglo[0];
  36.  
  37.         }else{
  38.  
  39.             alert("el articulo no existe");
  40.  
  41.         }
  42.  
  43.     }
  44.  
  45. }

bueno ahi mucho codigo, pero mi duda es la siguiente
Cuando llamo la segunda funcion, asiento_entrada() se ejecuta el condicional de la funcion resultj el que dice:

Código Javascript:
Ver original
  1. if (myAjax.readyState == 4) {
  2.         var liste = myAjax.responseText;
  3.         var cible = document.getElementById("tag_update").innerHTML = liste;
  4.         document.getElementById("tag_update").style.display = "block";
  5.     }else{
  6.         var cible = document.getElementById("tag_update").innerHTML = 'Buscando...';
  7.         document.getElementById("tag_update").style.display = "block";
  8.     }
pero eso es lo que no entiendo, yo no estoy llamando requestj ni resultj pero se ejecuta la parte negativa de este condicional, es decir, me muestra el mensaje buscando, pero ahi ni siquiera lo necesito...

Mi objeto AJAX es global, es por eso?? que solucion me proponen?, he pensado en definir el ajax en un ambito local pero no se, que me sugieren?
Tambien podrian sugerirme si ahi una mejor forma de hacer AJAX? es que siento que el codigo que hago es engorroso...
bueno estare atento gracias.
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x