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」に渡されなかった可能性があるため、URLを介して直接メールの値を渡そうとしました。
email: {
required: true,
email: true,
remote:"emailcheck.php?email=test@test.com"
},
しかし、私のフォームはまだ機能しません。
私の問題に対する洞察に感謝します。
ありがとう!