Php 使用jquery验证插件查找重复的电子邮件
我有一个注册页面,我用它验证所有字段条目。如何使用jquery验证表单以检查mysql数据库中的重复项?我尝试使用远程方法,但当我键入数据库中已有的电子邮件时,什么也没发生 注册.phpPhp 使用jquery验证插件查找重复的电子邮件,php,jquery,mysql,validation,Php,Jquery,Mysql,Validation,我有一个注册页面,我用它验证所有字段条目。如何使用jquery验证表单以检查mysql数据库中的重复项?我尝试使用远程方法,但当我键入数据库中已有的电子邮件时,什么也没发生 注册.php $("#feedbackForm").validate({ rules: { email: { required: true, email: true, remote: "inc/check_email.php"
$("#feedbackForm").validate({
rules: {
email: {
required: true,
email: true,
remote: "inc/check_email.php"
}
},
messages: {
email: {
email: "Insert valid adress",
required: "Please complete email field",
remote: "Email is already in use, please change it."
}
}
});
/inc/check_email.php
<?php
include('config.php');
$email = $_POST['email'];
$query = mysql_query("SELECT * FROM table WHERE email = '" . $email . "'");
if (mysql_num_rows($query) > 0) {
return true;
} else{
return false;
}
来自:
服务器端响应必须是JSON字符串,对于有效元素,该字符串必须为“true”;对于无效元素,该字符串可以为“false”、未定义或null,使用默认错误消息。如果服务器端响应是一个字符串,例如“已使用该名称,请改用peter123”,则此字符串将显示为自定义错误消息,而不是默认值
因此,您需要将if更改为:
$array = ['email' => 'true'];
if (mysql_num_rows($query) > 0) {
$array['email'] = 'Email is duplicated';
}
echo json_encode($array);
此外,您应该将db引擎更改为pdo或mysqli。Mysql_*函数已弃用。请查看此url
jQuery(函数(){
$.mockjax({
url:“login.action”,
响应:功能(设置){
var user=settings.data.match(/user=(.+?)($|&)/)[1],
password=settings.data.match(/password=(.+?)($|&)/)[1];
如果(密码!=“foobar”){
this.responseText=“您的密码错误(必须是foobar)。”;
返回;
}
this.responseText=“嗨”+用户+”,欢迎回来。“;
},
答复:200,
答复时间:500
});
//显示一个简单的加载指示器
var loader=jQuery(“”)
.css({
职位:“相对”,
顶部:“1em”,
左:“25em”,
显示:“内联”
})
.附件(“正文”)
.hide();
jQuery().ajaxStart(函数(){
loader.show();
}).ajaxStop(函数(){
loader.hide();
}).ajaxError(函数(a、b、e){
投掷e;
});
var v=jQuery(“#表单”)。验证({
submitHandler:函数(表单){
jQuery(表单).ajaxSubmit({
目标:“结果”
});
}
});
jQuery(“#重置”)。单击(函数(){
v、 resetForm();
});
});
插件需要一个JSON,谢谢大家
if (mysql_num_rows($query) > 0) {
echo json_encode(FALSE);
} else{
echo json_encode(TRUE);
}
可能插件需要一个JSON<代码>真/假
无法通过axaj callUse正确返回。JQUERY中的$.validator.addMethod必须返回“真”或“假”,而不是真或假。返回必须是像Robert所说的json格式。
if (mysql_num_rows($query) > 0) {
echo json_encode(FALSE);
} else{
echo json_encode(TRUE);
}