gpt4 book ai didi

php - JQuery 远程验证不起作用

转载 作者:行者123 更新时间:2023-12-01 08:03:15 25 4
gpt4 key购买 nike

我有一个注册表单,其中添加了 JQuery 验证插件远程验证。远程验证的目的是检查用户输入的电子邮件/和用户名是否已存在于我的数据库中(即已在使用中) ,如果是,将返回错误消息。在我添加远程验证之前,表单正在工作。

现在,即使我输入的所有数据都正确,我也无法提交表单,而且雪上加霜的是,当我输入数据库中已存在的电子邮件时,不会出现任何错误消息。

我的 JQuery 代码:

    $(document).ready(function(){
<!--AJAX Call to retrieve type & subtype of industries-->
$("#type").load("getregtype.php");

$('#type').change(function(){
var type=$('#type').val();
$('#subtype').load('getregsubtype.php?type='+type);
});
<!--End of AJAX Call -->

<!--JQuery validation of registration form-->
<!--Set default message for 'equalTo' errors-->
$.extend($.validator.messages, { equalTo: "The values you entered do not match." });
$("#regform").validate({

// Specify the validation rules
rules: {
username: "required",

password: {
required:true,
minlength:6,
},

cpassword: {
required: true,
minlength: 6,
equalTo: "#password"
},

email: {
required: true,
email: true,
remote:"emailcheck.php"
},

cemail: {
required: true,
email: true,
equalTo:"#email"

},

type: {
required: true
},

subtype: {
required: true
},
name: "required"
},

// Specify the validation error messages
messages: {
username: "Please enter a username",
email: {
required:"Please enter an email address",
email:"Please enter a valid email address",
remote:jQuery.format("{0} is already in use")
},
cemail: {
required:"Please enter an email address",
email:"Please reenter your email address",

},

password: {
required: "Please enter a password",
minlength: "Your password must be at least 6 characters long"
},
cpassword: {
required:"Please reenter your password",
minlength: "Your password must be at least 6 characters long"

},
name: "Please enter the name of your business"
},

submitHandler: function(form) {
form.submit();
}
});


});

我的PHP页面被远程调用。

 <?php

include("cxn.inc");

$query=$cxn->prepare("SELECT * FROM `testdb`.`business` WHERE `Email` = :email");
$query->bindValue(":email",$_GET['email']);
$query->execute();
$count=$query->rowCount();
$mail=$_GET['email'];
print_r($mail);
echo"$count";
if($count>0)
{

echo json_encode('false');

}
else
{
echo json_encode('true');
}

?>

尝试过的事情

print_r($mail) 和 echo"$count";两者都返回正确的值。我也尝试过

echo json_encode(true);

以及

return true;

编辑

我尝试过的其他一些事情。

echo true;

我还尝试直接通过网址传递电子邮件的值,以防该值没有通过执行传递到“emailcheck.php”

email: {
required: true,
email: true,
remote:"emailcheck.php?email=test@test.com"
},

但我的表单仍然不起作用。

感谢您对我的问题的任何见解。

谢谢!

最佳答案

您的 PHP 脚本需要一个名为 email 的 GET 参数。为了消除此处出现错误的可能性,您可以在 jQuery 代码中显式设置:

    rules: {
/* Code skipped ... */

email: {
required: true,
email: true,
type: "get",
remote:"emailcheck.php"
data: {
email: function() {
return $("#email").val();
}
}
},
/* ... */

确保 $('#email') 与您的表单输入真正匹配。

您还可以使用 Firebug 或等效工具检查响应(只需在浏览器窗口上按 F12,看看会出现什么),您可能需要确保响应的 mimetype 为 application/json.

关于php - JQuery 远程验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18169986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com