JQuery Validation Remote Fail - PullRequest
       0

JQuery Validation Remote Fail

0 голосов
/ 29 апреля 2011

У меня есть этот код:

$(document).ready(
function(){
    $('#formulario').validate(
        {
            rules:{
                nombre:{ required: true },
                direccion:{ required: true },
                cpostal:{ required: true, number: true },
                telefono:{ required: true, number: true },
                correo:{
                    required: true,
                    email: true,
                    remote: { url: "lib/comprueba.php", type: "POST" }
                },
                personaContacto:{ required: true },
                cargo:{ required: true },
                usuario:{ required: true },
                contrasena:{ required: true },
                tlfContacto:{ required: true, number: true }
            },
            messages:{
                nombre:{ required: "Introduce un nombre." },
                direccion:{ required: "Introduce una dirección." },
                cpostal:{
                    required: "Introduce un codigo postal.",
                    number: "Error: Campo numérico." },
                telefono:{
                    required: "Introduce un teléfono.",
                    number: "Error: Campo numérico." },
                correo:{
                    required: "Introduce un email.",
                    email: "Error: ej. correo@servidor.dominio",
                    remote: "Ese correo ya existe." },
                personaContacto:{ required: "Introduce una persona de contacto." },
                cargo:{ required: "Introduce un cargo." },
                usuario:{ required: "Introduce un usuario." },
                contrasena:{ required: "Introduce una contraseña." },
                tlfContacto:{
                    required: "Introduce un telefono para la persona de contacto.",
                    number: "Error: Campo numérico." }
            }
        }
    );
}

);

и этот код в php файле:

//session_start();
include('bbdd4.php');
if(isset($_REQUEST['correo'])===true){
    $email = $_REQUEST['correo'];
    $comprobarEmail = obtener("SELECT correo FROM usuario WHERE correo = '$email'");
    if(isset($comprobarEmail[0]['correo'])){
        $valido = false;
    }else{
        $valido = true;
    }
    header('Content-type: application/json');
    echo json_encode($valido);
    //echo $valido;
}

Проблема в том, что когда php возвращает true, в html javascript переводит элемент в значение valid, а когда php возвращает false, элемент вводится в значение valid. : S

Изображение момента:

см. Внизу ответ php

Извините за мой плохой английский.

Я нахожу решение здесь: Проверка имени пользователя JQuery , с некоторыми изменениями:

$(document).ready(
function(){

    jQuery.validator.addMethod("comprobarCorreo", function(email) {
       var isSuccess = false;
       $.ajax({ url: "lib/comprueba.php",
                data: "correo=" + email,
                async: false,
                success:
                    function(msg) { isSuccess = msg;}
              });
        return isSuccess;
    },"");

    $('#formulario').validate(
        {
            rules:{
                nombre:{ required: true },
                direccion:{ required: true },
                cpostal:{ required: true, number: true },
                telefono:{ required: true, number: true },
                correo:{
                    required: true,
                    email: true,
                    comprobarCorreo: true
                },
                personaContacto:{ required: true },
                cargo:{ required: true },
                usuario:{ required: true },
                contrasena:{ required: true },
                tlfContacto:{ required: true, number: true }
            },
            messages:{
                nombre:{ required: "Introduce un nombre." },
                direccion:{ required: "Introduce una dirección." },
                cpostal:{
                    required: "Introduce un codigo postal.",
                    number: "Error: Campo numérico." },
                telefono:{
                    required: "Introduce un teléfono.",
                    number: "Error: Campo numérico." },
                correo:{
                    required: "Introduce un email.",
                    email: "Error: ej. correo@servidor.dominio",
                    comprobarCorreo: "Ese correo ya existe"},
                personaContacto:{ required: "Introduce una persona de contacto." },
                cargo:{ required: "Introduce un cargo." },
                usuario:{ required: "Introduce un usuario." },
                contrasena:{ required: "Introduce una contraseña." },
                tlfContacto:{
                    required: "Introduce un telefono para la persona de contacto.",
                    number: "Error: Campo numérico." }
            }
        }
    );
}

);

и тот же php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...