Estimados compañeros:
Edit: Esta solución es correcta, dejo al final lo único de html que se debería incluir:
Estoy utilizando este plugin que sirve para facilitar el tema de las validaciones. Todo funciona correctamente pero la validación remote que sirve para en tiempo real comprobar si un usuario existe o no. No funciona ni para atras. He estado mirando por internet y parece que es un tema recurrente pero de las respuestas que han dado no he encontrado la buena para mi caso y sigue sin funcionar. Lo que quiero conseguir es lo mismo que tiene mv cuando se registra un nuevo usuario. En el sentido de que por medio de ajax comprueba si el usuario existe en la BBDD o no. Os dejo el script por si alguien ve algun error o encuentra la solución:
$("#form1").validate({
// Specify the validation rules
rules: {
username:{
required:true,
minlength:2,
maxlenght:30,
remote: 'validate.php'
},
email: {
required: true,
email: true
},
password1: {
minlength: 5
},
password2 : {
minlength : 5,
equalTo : "#password1"
}
},
// Specify the validation error messages
messages: {
username: {
required: "Introduce un nombre de contacto",
minlenght: "El nombre de contacto debe tener al menos 2 caracteres",
maxlenght: "El nombre de contacto no puede superar 30 caracteres",
remote: "El usuario ya existe"
},
password1: {
minlength: "Introduzca una contraseña correcta"
},
password2: {
minlength: "Introduzca una contraseña correcta",
equalTo: "Las dos contraseñas deben ser iguales"
},
email:{
required:"Escribe un email válido por favor",
email: "Escribe un email válido por favor"
}
},
errorPlacement: function (error, element) {
error.insertAfter(element).position({
my: 'right top',
at: 'right top',
of: element
});
},
submitHandler: function(form) {
form.submit();
}
});
});
</script>
Aqui os dejo el php que utilizo para consultar la BBDD:
<?php
error_reporting(-1);
ini_set('display_errors', 'On');
$username = $_GET["username"];
$dbserver = '';
$dbuser = '';
$dbpasswd = '';
$dbname = '';
$tablename = 'Usuarios_temp';
if(!mysql_connect($dbserver,$dbuser, $dbpasswd))
{
echo "error: ".mysql_error();
exit;
}
if(!mysql_select_db($dbname))
{
echo "error: ".mysql_error();
exit;
}
$username = mysql_real_escape_string( $username );
$result = mysql_query("SELECT usuariotemp FROM $tablename WHERE usuariotemp = '$username'");
if(!$result)
{
echo "error: ".mysql_error();
exit;
}
if(mysql_num_rows($result) == 0)
{
echo 'true';//email is unique. not signed up before
}
else
{
echo 'false';
}
?>
Html
div class="errorcontainer"><input class="text" name="username" id="username" remote="validate.php" type="text" tabindex="1" /></div>
A ver, si alguien con experiencia puede dar una solución porque la verdad somos muchos los que tenemos problemas con este asunto y en la documentación del plugin no responde claramente sobre este problema.