Foros del Web » Programando para Internet » Javascript »

Validar un e-mail con Ajax y Javascript

Estas en el tema de Validar un e-mail con Ajax y Javascript en el foro de Javascript en Foros del Web. Hola amigos, Estoy intentando validar un e-mail con Ajax y Javascript. Vaya por delante que nunca he programado con Ajax y que estoy realmente perdida. ...
  #1 (permalink)  
Antiguo 10/05/2015, 05:40
 
Fecha de Ingreso: febrero-2015
Mensajes: 10
Antigüedad: 9 años, 2 meses
Puntos: 0
Validar un e-mail con Ajax y Javascript

Hola amigos,

Estoy intentando validar un e-mail con Ajax y Javascript. Vaya por delante que nunca he programado con Ajax y que estoy realmente perdida.

Por una parte valido el e-mail con javascript con una función que contiene un patrón:

//Email
function validarEmailReg(evento){
exprEMAIL= new RegExp (/^[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}$/);
email=document.getElementById("email").value;

if (!(email.match(exprEMAIL))){
document.getElementById("email").style.backgroundC olor="#feeeee";
document.getElementById("email").style.border="1px solid #e39797";
document.getElementById("email").focus();
evento.preventDefault();
return false
}
return true;
}

Luego esta función está conectada con otra que se llama validar, que valida todos los campos del formulario y si todo está correcto lo envía a la base de datos.

Esto si me lo hace bien. Ahora: el problema está en que mi página los nombres de usuario son iguales que los e-mail, por lo tanto no debe haber en la base de datos dos usuarios con el mismo email, para ello me he creado otra función con javascript y ajax:

<script type="text/javascript">
//<![CDATA[
function comprobar(usuario){
var url = 'includes/ajax_comprobar_nick.php';
var email=document.getElementById("email").value;
var pars='email='+email;
var myAjax = new Ajax.Updater( 'comprobar_mensaje', url, { method: 'get', parameters: pars});

}
// -->
</script>

y la parte de php que busca el email en la base de datos:

$email=$_REQUEST['email'];
$consulta="SELECT count(Email) as cuenta FROM usuarios WHERE Email='".$email."'" or die ("Error en la consulta");

$datos=mysql_query($consulta,$con) or die ("Error en el procesado de datos");
$fila=mysql_fetch_array($datos) or die ("error");

// El usuario existe en la Base de Datos
if($fila['cuenta']>0)
{

echo "El email ya existe, introduce otro.";


}

Ahora bien, no se cómo conectar estas dos partes, por un lado la validación del email con el patrón y por el otro comprobar si el email ya está en la base de datos.

¿Qué hago?
  #2 (permalink)  
Antiguo 10/05/2015, 11:03
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Validar un e-mail con Ajax y Javascript

Hola

No sé qué métodos tendrá la función Ajax que usas, pero de manera nativa, puedes hacerlo así:

Código Javascript:
Ver original
  1. var ajax = new XMLHttpRequest(), //Creo el objeto con el que realizaré la petición asíncrona
  2.     ruta = "ejemplo.php"; //La dirección a la cual enviarás los datos
  3.    
  4. //Los datos tienen que estar organizados en pares clave-valor
  5. //Por lo que tienen que tener la forma 'variable1=valor1&variable2=valor2&variableN=valorN'
  6. //Si es así, los adherimos a la ruta como una cadena de consulta
  7. ruta += "?" + datos; //ejemplo.php?variable1=valor1&variable2=valor2&variableN=valorN
  8.  
  9. //Establezco el método a usar, la dirección con los datos y si será o no asíncrono
  10. ajax.open("GET", ruta, true);
  11.  
  12. //Cuando cambie el estado de la petición, ejecuto una función anónima
  13. ajax.addEventListener("readystatechange", function(){
  14.     //Si la petición se completó y no se obtuvo un error
  15.     if (ajax.readyState == 4 && ajax.status == 4){
  16.         //Muestro en un mensaje de alerta la respuesta de la petición
  17.         alert(ajax.responseText);
  18.     }
  19. }, false);
  20.  
  21. //Realizo el envío de los datos
  22. ajax.send();

Y en el archivo PHP, solo tienes que realizar la consulta e imprimir un mensaje en el caso de que se encuentren o no coincidencias con los datos enviados desde la petición asíncrona.

Por cierto, el valor que asignas a la variable $consulta no es el correcto.

Esto:
Código PHP:
Ver original
  1. $consulta="SELECT count(Email) as cuenta FROM usuarios WHERE Email='".$email."'" or die ("Error en la consulta");

Solo debe de ser así:
Código PHP:
Ver original
  1. $consulta="SELECT count(Email) as cuenta FROM usuarios WHERE Email='".$email."'";

Puesto que una cadena de texto no puede generar un error, solo la ejecución de la consulta es la que puede generar uno, para este caso.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

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 17:12.