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

Error de ajax o mio

Estas en el tema de Error de ajax o mio en el foro de Frameworks JS en Foros del Web. Hola tengo una duda que no puedo resolver estoy utilizando ajax para hacer una consulta a mi base de datos. En este caso hago la ...
  #1 (permalink)  
Antiguo 08/05/2008, 05:33
 
Fecha de Ingreso: marzo-2008
Mensajes: 18
Antigüedad: 16 años, 1 mes
Puntos: 0
Error de ajax o mio

Hola tengo una duda que no puedo resolver estoy utilizando ajax para hacer una consulta a mi base de datos.
En este caso hago la consulta para saber si un registro existe en mi base esto con el fin de validar antes del submit...

Este es mi codigo ajax:
Código:
function busca_usu(){
	usu = document.formu.usu_login.value;
	ajaxusu=newAjax();
	ajaxusu.open("POST", "verifica.php",true);
	ajaxusu.onreadystatechange=function() {
		if (ajaxusu.readyState==4) {
			respuesta = ajaxusu.responseText;
			if (respuesta == '1')
			{
			return (false);	
			}
			if (respuesta == '0')
			{
			return (true);	
			}
		}
	}
	ajaxusu.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	ajaxusu.send("usuario="+usu);
}
ahora en verifica.php tengo esto:
Código:
require_once("../../configuracion.php");
$usu = $_POST['usuario'];
$sql = "select login from usuarios where login = '".$usu."'";
$result = mysql_query($sql, $local);
$num = mysql_num_rows($result);
if ($num == 0)
{
echo "0";
}
else
{
echo "1";
}
ahora llamo a la funcion busca_usu() antes del submit algo asi
Código:
verifica = busca_usu();
if (!verifica)
{
//algo mas
return (false);//asi ya no envia el formulario
//algo mas aca
}
Me estuvo funcionando bien las primeras veces q lo probe pero quise repetirlo en otro formulario y ahi murio mi codigo T_T ya no funcionaba en ninguno de los 2 formularios y no cambie nada...
Probando vi que ajax ya no me devuelve "1" o "0" como yo lo programe mas bien me devuelve "espaciosssssssss en blanco y al final mi variable 1" se pupone que no deberia reconocerlo pero igual la funcion busca_usu() me devuelve false...
No deberia ser asi no se q abra pasado?
Ajax tiene requirimientos para usarlo?
Porfavor si alguien pueda orientarme lo agradeceria mucho
  #2 (permalink)  
Antiguo 08/05/2008, 08:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Error de ajax o mio

Hola jannoz,

Recuerda que AJAX es asíncrono, por lo que tu envías tu petición al servidor, el servidor procesa y te regresa la respuesta pero de manera asíncrona, no puedes hacer un return directamente ya que no te regresa nada.

Debes de hacer algo así:
Código:
function busca_usu(){
	usu = document.formu.usu_login.value;
	ajaxusu=newAjax();
	ajaxusu.open("POST", "verifica.php",true);
	ajaxusu.onreadystatechange=function() {
		if (ajaxusu.readyState==4) {
			procesaRespuesta( ajaxusu.responseText );
		}
	}
	ajaxusu.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	ajaxusu.send("usuario="+usu);
}

function procesaRespuesta(val) {
       if( val == "1" ) {
                 form_submit();
       } else {
                 alert( "El usuario ya existe!" );
       }
}
Luego en el código donde envías a tu formulario:
Código:
function onFormSubmit() {
        busca_usu();
        return false;
}
Saludos.
  #3 (permalink)  
Antiguo 10/05/2008, 02:28
 
Fecha de Ingreso: marzo-2008
Mensajes: 18
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Error de ajax o mio

Hola gracias por tu respuesta estuve probando distintas maneras de hacerlo pero no me funcionan me sigue botando de respuesta:
"e s p a c i o s e n b l a n c o y e l r e s u l t a d o a l f i n a l 1"
He pensado que tal vez la manera en que trabajo crea algun conflicto aunque no creo..., llamo a diferentes paginas, cada pagina contiene diferente codigo php ademas de un formulario distinto, esto dependiendo de una variable la cual la recibo con get para luego mostrarla con include(), tambien llamo diferente codigo javascript dependiendo de la misma variable, todo esto en una pagina principal, esto no me presenta ningun problema, pero al querer usar ajax me pasa lo de los espacios aun no encuentro el error deberia de funcionar.....

Saludos...
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:58.