Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php、mysql和validate插件对电子邮件字段进行jquery验证_Php_Jquery_Mysqli_Jquery Validate - Fatal编程技术网

使用php、mysql和validate插件对电子邮件字段进行jquery验证

使用php、mysql和validate插件对电子邮件字段进行jquery验证,php,jquery,mysqli,jquery-validate,Php,Jquery,Mysqli,Jquery Validate,我在使用jquery的验证插件时遇到了一些奇怪的问题。这似乎被问了好几次,但我找不到问题的答案。我有一个表单,我正在尝试查看电子邮件是否已经输入-如果已经输入,用户应该无法提交表单。我正在使用FireHP输出各种变量。这就是我注意到查询的返回值总是1的地方,这是错误的。但是,当我使用PhpMyAdmin手动查询我的数据库时,会出现正确的答案0 这是我的js: // validate signup form on keyup and submit $("#register").valida

我在使用jquery的验证插件时遇到了一些奇怪的问题。这似乎被问了好几次,但我找不到问题的答案。我有一个表单,我正在尝试查看电子邮件是否已经输入-如果已经输入,用户应该无法提交表单。我正在使用FireHP输出各种变量。这就是我注意到查询的返回值总是1的地方,这是错误的。但是,当我使用PhpMyAdmin手动查询我的数据库时,会出现正确的答案0

这是我的js:

    // validate signup form on keyup and submit
$("#register").validate({
    rules: {
        ......
        email: {
            required: true,
            email: true,
            remote: "check_email.php" , async:false 
        }, 
    },
    messages: {
                     ......
        email: {required: "Please enter an email address", email: "Please enter a valid email address", remote: "This email is already registered" },
        }
    }
});
})

这是我的php数据库连接后的东西

$form_email = $_GET['email'];
fb($form_email);


$sql = "SELECT COUNT(*) AS num_rows FROM users WHERE email = " . "'" . $form_email . "'"; 
fb($sql);
$result = $conn->query($sql);
fb($result->num_rows);

if ($result->num_rows == 0) {
    echo 'true';
    fb("true");
} else {
       echo 'false';
    fb("false");
 }
计数始终返回为1,即使我输入了一封不存在的电子邮件

我也试过回来

echo json_encode('true');
当我在某个地方读到这本书时,这本书可能会有用,但没有用。为什么我的php中的响应总是错误的?

远程规则的语法不正确:

rules: {
    ......
    email: {
        required: true,
        email: true,
        remote: "check_email.php" , async:false 
    }, 
}
按照您编写的方式,插件将异步视为另一条规则。由于没有异步这样的规则,插件将阻塞

,试试这个:

rules: {
    ......
    email: {
        required: true,
        email: true,
        remote: "check_email.php"
    }
}
或者这个

rules: {
    ......
    email: {
        required: true,
        email: true,
        remote: {
            url: "check_email.php", 
            async: false 
        }
    } 
}

演示:

异步不是规则。检查你的语法。将我的js更改为remote:Check_email.php,但仍然不走运。@KathyLyons,正如你所见,插件在这里工作:但是你的OP中缺少太多东西,我无法进一步帮助你。表单的呈现HTML在哪里?