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

Ayuda, LOGIN con ajax

Estas en el tema de Ayuda, LOGIN con ajax en el foro de Frameworks JS en Foros del Web. Que tal amigos. Estoy haciendo un control de inicio de sesión con ajax, puesto que debo validar las cajas de texto con js pero al ...
  #1 (permalink)  
Antiguo 27/08/2010, 01:36
 
Fecha de Ingreso: abril-2010
Ubicación: Saltillo Mexico
Mensajes: 83
Antigüedad: 14 años, 7 meses
Puntos: 4
Ayuda, LOGIN con ajax

Que tal amigos. Estoy haciendo un control de inicio de sesión con ajax, puesto que debo validar las cajas de texto con js pero al momento de enviar los datos al php me pasa siempre lo mismo... a ver si alguien me puede explicar porque por mas que lo veo no entiendo... soy nuevo en ajax asi que me gustaría algo de retroalimentación.

Este es mi página:
Código HTML:
<head >
<script type="text/javascript" src="funciones.js"></script>
</head>
<body>
<table width="300px" cellpadding="0" cellspacing="0">
	<tr style="height:25px">
		<td height="25" colspan="2" align="center" class="titleDiv" >Iniciar Sesión</td>
	</tr>
	<tr style="height:25px">
		<td height="26" align="right">Nombre de Usuario:</td>
		<td><input type="text" name="username" id="user" /></td>
	</tr style="height:25px">
	<tr>
		<td height="28" align="right">Contraseña:</td>
		<td><input type="password" name="password" id="pass" /></td>
	</tr >
	<tr style="height:25px">
		<td></td>
		<td><input type="button" name="btnIniciar" id="ingresar" value="Iniciar Sesión" onclick="validar()" /></td>
	</tr>
</table>
</body> 
luego tengo mi js:
Código:
function validar()
{
	var user = document.getElementById('user');
	var pass = document.getElementById('pass');
	if((user.value == "") && (pass.value == ""))
	{
		alert("Debes ingresar Datos");
		user.focus();
	}
	else
	{
		if(user.value == "")
		{
			alert("debes escribir tu nombre de usuario");
			user.focus();
		}
		else
		{
			if(pass.value == "")
			{
				alert("debes escribir una contraseña");
				pass.focus();
			}
			else
			{
				//compararlos a la base de datos:
				verDB();	
			}
		}
	}
}
hasta aqui todo esta validado... el problema es cuando hago la funcion verDB():
Código:
function objetoAjax(){

  var xmlhttp=false;
  try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
  try {
  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
  xmlhttp = false;
  }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
} 

function verDB()
{
	
	var ajax=objetoAjax();
	var user = document.getElementById('user');
	var pass = document.getElementById('pass');

  	ajax.open("POST", "loginCheck.php", false);
   	ajax.onreadystatechange=function() 
	{
    	if (ajax.readyState==4) 
		{
       		
			var respuesta = ajax.responseText
		   	if(respuesta == "pass")
		   	{
				alert("La contraseña no es correcta"); 
				pass.value = "";
				pass.focus();
		   	}
		   	if(respuesta == "user")
		   	{
				alert("el nombre de usuario no existe");
				user.value = "";
				user.focus();
		   	}
		   	if(respuesta == "logged")
		   	{
				location.href="home.php";      
		   	}       		
     	}
  	}
   	ajax.send("user="+user.value"&pass="+pass.value)

}
Cuando pongo esto ya no me hace nada...

Ayuda
  #2 (permalink)  
Antiguo 27/08/2010, 06:37
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 9 meses
Puntos: 29
Respuesta: Ayuda, LOGIN con ajax

Y porqué no un elseif o un switch?

Código Javascript:
Ver original
  1. if (ajax.readyState==4)
  2.         {
  3.                
  4.             var respuesta = ajax.responseText
  5.                if(respuesta == "pass")
  6.                {
  7.                 alert("La contraseña no es correcta");
  8.                 pass.value = "";
  9.                 pass.focus();
  10.                }
  11.                else if(respuesta == "user")
  12.                {
  13.                 alert("el nombre de usuario no existe");
  14.                 user.value = "";
  15.                 user.focus();
  16.                }
  17.                else if(respuesta == "logged")
  18.                {
  19.                 location.href="home.php";      
  20.                }              
  21.          }

Código Javascript:
Ver original
  1. if (ajax.readyState==4)
  2.         {
  3.                
  4.             var respuesta = ajax.responseText
  5.                switch(respuesta)
  6.                {
  7.                 case "pàss":
  8.                  alert("La contraseña no es correcta");
  9.                  pass.value = "";
  10.                  pass.focus();
  11.                break;
  12.  
  13.                case "user":
  14.                
  15.                 alert("el nombre de usuario no existe");
  16.                 user.value = "";
  17.                 user.focus();
  18.                break;
  19.                case "logged":
  20.                 location.href="home.php";      
  21.                break;
  22.                default:
  23.                  location.href="error.php";
  24.               break;
  25.          }
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #3 (permalink)  
Antiguo 27/08/2010, 12:06
 
Fecha de Ingreso: junio-2010
Ubicación: Lomas de Zamora, Buenos Aires, Argentina
Mensajes: 5
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda, LOGIN con ajax

Viendo brevemente tu código, me parece que deberías cambiar los parametros cuando llamas al método open

ajax.open("POST", "loginCheck.php",false)

El tercer parámetro indica si la llamada es asincrónica o no, como especificas que no es asincrónica, no ejecutará el onreadystatechange.

Cambia false por true y debería andar

Etiquetas: ajax, javascript, login, mysql, php, validar
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 17:54.