Foros del Web » Programando para Internet » Javascript »

problema con peticiones

Estas en el tema de problema con peticiones en el foro de Javascript en Foros del Web. Hola forer@s, quiero explicarles con mi codigo para hacerme entender mejor. Tengo esta funcion @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function requestj ( str ...
  #1 (permalink)  
Antiguo 19/01/2012, 11:18
Avatar de 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
  #2 (permalink)  
Antiguo 19/01/2012, 11:41
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: problema con peticiones

debe evaluar tambien myAjax.status== 200, consulte un manual de AJAX
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 19/01/2012, 11:50
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: problema con peticiones

aunque esa respuesta suena como un regaño, funciono, y tiene mucha razon, no comprendia la importancia del status==200
muchas gracias
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #4 (permalink)  
Antiguo 19/01/2012, 12:59
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: problema con peticiones

Cita:
Iniciado por malakian Ver Mensaje
aunque esa respuesta suena como un regaño, funciono, y tiene mucha razon, no comprendia la importancia del status==200
muchas gracias
bueno... es que es el error más común de los principiantes en AJAX, y es algo cansino responder lo mismo todo el tiempo, disculpa si te he ofendido, saludos
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: ajax
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:15.