我的 Laravel Controller 类检查电子邮件是否已存储在数据库中:在我的 User 表中,它检查电子邮件是否存在于数据库中?
public function checkemail(){
$userCount = DB::table('users')->where('email', input::get('email'));
if($userCount->count())
{
return Response::json(array('msg' => 'true'));
}
else
{
return Response::json(array('msg' => 'true'));
}
}
我的 Ajax 方法检查电子邮件是否已存储在数据库中?
如果它存储在数据库中,那么它应该说电子邮件地址已被占用,否则什么也没有。如果电子邮件被占用,它会显示为红线,如果没有,则不会显示任何内容。
表单名称为registration。
web.php 中的 url 是
routes::post('checkmail','postcontroller@checkmail');
jQuery
$("#registration").validate({
errorElement: 'div',
errorLabelContainer: '.errorTxt',
ignore: [],
//following rules for email
rules: {
email: {
required: true,
email: true,
remote: {
url: "checkemail",
type: "post",
data: {
email: $("input[email='email']").val()
},
dataFilter: function(data) {
var json = JSON.parse(data);
if (json.msg == "true") {
return "\"" + "Email address already in use" + "\"";
} else {
return 'true';
}
}
}
},
},
messages: {
email: {
required: 'Email is required',
email: 'Please enter a valid email address',
remote: 'Email already taken'
}
},
errorPlacement: function(error, element) {
if (element.attr("name") == "email") {
$(".erroremail").append(error);
} else {
error.append($('.errorTxt span'));
}
},
submitHandler: function(form) {
form.submit();
}
});
任何人都可以帮助我吗,我对 Laravel 和 ajax 整体来说还很陌生。
最佳答案
文本框模糊事件
<input type="text" name="email" onblur="duplicateEmail(this)" class="form-control">
jQuery 函数
function duplicateEmail(element){
var email = $(element).val();
$.ajax({
type: "POST",
url: '{{url('checkemail')}}',
data: {email:email},
dataType: "json",
success: function(res) {
if(res.exists){
alert('true');
}else{
alert('false');
}
},
error: function (jqXHR, exception) {
}
});
}
路线
Route::post('/checkemail',['uses'=>'PagesController@checkEmail']);
Controller
public function checkEmail(Request $request){
$email = $request->input('email');
$isExists = \App\User::where('email',$email)->first();
if($isExists){
return response()->json(array("exists" => true));
}else{
return response()->json(array("exists" => false));
}
}
您可以添加基于 true
和 false
的 AJAX 成功处理程序代码
关于php - 使用ajax和laravel实时验证电子邮件(如果电子邮件已在数据库中,则显示电子邮件已被占用),就像gmail注册页面一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46035204/