jQuery Validar el uso del método remoto para verificar si el nombre de usuario ya existe

Resuelto Rounds asked hace 54 años • 2 respuestas

Quiero validar si el nombre de usuario existe en la base de datos usando jQuery.validate, así que esto es lo que tengo hasta ahora:

jQuery:

    $("#signupForm").validate({
        rules: {
            username: {
                required: true,
                minlength: 3,
                remote: "check-username.php"
                }
            },
        messages: {
            username:{
                remote: "This username is already taken! Try another."
            }
        }
  });

comprobar-nombre de usuario.php:

<?php

require_once "./source/includes/data.php";
header('Content-type: application/json');

$name = mysql_real_escape_string($_POST['username']);

$check_for_username = mysql_query("SELECT username FROM mmh_user_info WHERE username='$name'");

if (mysql_num_rows($check_for_username) > 0) {
    $output = true;
} else {
    $output = false;
}
echo json_encode($output);
?>

Este código siempre muestra un error de que se toma el nombre de usuario incluso si no lo es.

Estoy usando jQuery Mobile 1.9.1

Gracias de antemano.

Rounds avatar Jan 01 '70 08:01 Rounds
Aceptado

Logré que esto funcione cambiando la técnica de PHP que estaba usando, aquí está mi PHP:

<?php
require_once "./source/includes/data.php";
header('Content-type: application/json');
$request = $_REQUEST['username'];

$query = mysql_query("SELECT * FROM mmh_user_info WHERE username ='$username'");
$result = mysql_num_rows($query);
if ($result == 0){
$valid = 'true';}
else{
$valid = 'false';
}
echo $valid;
?>

Gracias a todos aquí por su ayuda :)

Rounds avatar May 16 '2013 11:05 Rounds

Tengo dos recursos para mirar.

Ejemplo oficial del complemento de validación: http://jquery.bassistance.de/validate/demo/milk/

Solución del foro jQuery: http://forum.jquery.com/topic/jquery-validation-plugin-remote-validation-problem-locks-up

La posible solución es que, hasta donde yo sé, no es necesario codificar la respuesta en json. Dado que json necesita pares clave-valor, proporcionar solo el valor no funcionará. Así que intenta simplemente repetirlo como cadenas "verdaderas" o "falsas".

En segundo lugar, la validación utiliza GET para el método de envío del formulario, no POST.

NOTA: RECIÉN ENCONTRADO UNA POSIBLE SOLUCIÓN PREGUNTA Validación remota de jQuery

CP510 avatar May 16 '2013 00:05 CP510