Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problema con validar formulario con AJAX

Estas en el tema de Problema con validar formulario con AJAX en el foro de Frameworks JS en Foros del Web. Buenos días Lo primero daros las gracias por dedicarme unos segundos. Estoy haciendo una validación de un formulario para el registro de un usuario que ...
  #1 (permalink)  
Antiguo 31/10/2008, 05:13
 
Fecha de Ingreso: abril-2008
Ubicación: Madrid
Mensajes: 22
Antigüedad: 16 años, 7 meses
Puntos: 1
Problema con validar formulario con AJAX

Buenos días

Lo primero daros las gracias por dedicarme unos segundos.

Estoy haciendo una validación de un formulario para el registro de un usuario que consulta a la base de datos si existe el usuario introducido.

La idea es la siguiente:

Código lenguaje:
Ver original
  1. function insestaUser(){
  2.  
  3.   //comprobamos si existe el usuario llamando a la funcion existeUsurio
  4.   if(existeUsurio(document.getElementById("f6").value)){
  5.     alert("el usuario y aexiste");
  6.   }else{
  7.     document.getElementById("form1").submit();
  8.     close();
  9.   }
  10. }
  11.  
  12. function existeUsurio(user){
  13.   _objetus=http_request();
  14.   //<![CDATA[
  15.   _values_send="accion=buscaUsuario&user="+user;
  16.   //]]>
  17.   _URL_="../ajax/ajax.usuario.php?";
  18.   _objetus.open("GET",_URL_+"&"+_values_send,true);
  19.   _objetus.onreadystatechange=function(){
  20.       if (_objetus.readyState==4){
  21.           if(_objetus.status==200){
  22.               var vari=_objetus.responseText;
  23.               if(vari > 0){
  24.                   return true;
  25.               }else{
  26.                   return false;
  27.               }
  28.           }
  29.       }else{
  30.           window.alert('¡Error! falla-['+_objetus.status+']-'+_objetus.responseXML);
  31.       }
  32.   }
  33.   _objetus.send(null);
  34. }

El problema que tengo que al llamar a la función existeUsurio no espera a que termine de ejecutarse la funcion ajax, continua la comprovación "existeUsurio" como si reciviese un true, somo si al entar en el función de ajax se creara otro hilo de ejecución.
Imagino que el problema será a que la función tiene que esperar a que el evento onreadystatechange sea llamado.
¿Habría posibilidad que el if esperase a la respuesta del ajax?

Saludos

Última edición por syscover; 31/10/2008 a las 05:22
  #2 (permalink)  
Antiguo 31/10/2008, 06:11
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con validar formulario con AJAX

Me da la sensación de que no has entendido exactamente lo que quiere decir AJAX (sobretodo la primera A de Asíncrono).

El asunto es que sí, se "crea otro hilo de ejecución" y sí, "no espera". De eso se trata precisamente que sea asíncrono, que no espera.


Lo que tienes que hacer es, en la función que asignass al readystatechange, en lugar de devolver un true o false, hacer la llamada que quieras hacer. Es decir, es ahí donde, en lugar de poner return true o false, tendrás que sacar el alert o hacer el submit.
  #3 (permalink)  
Antiguo 31/10/2008, 10:45
 
Fecha de Ingreso: abril-2008
Ubicación: Madrid
Mensajes: 22
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Problema con validar formulario con AJAX

ok muchas gracias
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 02:15.