如何使用ajax Laravel 5.3进行验证 [英] how to make validation using ajax Laravel 5.3
问题描述
我正在使用Laravel5.在我的OrganisationsController中,我有一个方法addItem
I am using Laravel 5. In my OrganisationsController I have a method addItem
public function addItem(Request $request)
{
$rules = array(
'nom' => 'required',
);
// for Validator
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails())
return Response::json(array('errors' => $validator->getMessageBag()->toArray()));
else {
$section = new Section();
$section->nom = $request->nom;
$section->save();
return response()->json($section);
}
}
Ajax代码
Ajax code
$("#add").click(function() {
$.ajax({
type: 'post',
url: '/addItem',
data: {
'_token': $('input[name=_token]').val(),
'nom': $('input[name=nom]').val()
},
success: function(data) {
if ((data.errors)) {
$('.error').removeClass('hidden');
$('.error').text(data.errors.title);
$('.error').text(data.errors.description);
} else {
$('.error').remove()
$('table').append("<tr class='section" + data.id + "'><td>" + data.id + "</td><td>" + data.nom + "</td><td><button class='edit-modal btn btn-info' data-id='" + data.id + "' data-nom='" + data.nom + "'><span class='glyphicon glyphicon-edit'></span> Edit</button> <button class='delete-modal btn btn-danger' data-id='" + data.id + "' data-nom='" + data.nom + "'><span class='glyphicon glyphicon-trash'></span> Delete</button></td></tr>"); }
}
});
$('#noom').val('');
});
html代码
html code
<div class="form-group row add">
<div class="col-md-5">
<input type="text" class="form-control " id="noom" name="nom"
placeholder="New section here" required>
<p class="error text-center alert alert-danger hidden"></p>
</div>
<div class="col-md-2">
<button class="btn btn-warning" type="submit" id="add">
<span class="glyphicon glyphicon-plus"></span> Add new Section
</button>
</div>
</div>
我不知道为什么我的验证无效.请为此提供一个示例.我正在使用laravel5.我已经搜索了很多站点.但是我无法解决这个问题.
I don't know why my validation not work. Please suggest a example for this. I am using laravel 5. I have searched so many sites. But I cannot get solution for this.
推荐答案
如果验证失败,则会返回状态代码(错误代码)为422
.
If your validations fails it will return with a status code (error code) of 422
.
在$.ajax
中,您仅使用success
,如果您的验证失败,则不会调用它.
In your $.ajax
you're only using success
which won't be called if your validation fails.
您将需要在ajax选项中添加错误方法.使用上面的代码,您将像:
You will need to add an error method to your ajax options. Using your above code you would have something like:
success: function (data) {
$('.error').remove()
$('table').append("<tr class='section" + data.id + "'><td>" + data.id + "</td><td>" + data.nom + "</td><td><button class='edit-modal btn btn-info' data-id='" + data.id + "' data-nom='" + data.nom + "'><span class='glyphicon glyphicon-edit'></span> Edit</button> <button class='delete-modal btn btn-danger' data-id='" + data.id + "' data-nom='" + data.nom + "'><span class='glyphicon glyphicon-trash'></span> Delete</button></td></tr>");
},
error: function (data) {
if (data.errors) {
$('.error').removeClass('hidden');
$('.error').text(data.errors.title);
$('.error').text(data.errors.description);
}
}
希望这会有所帮助!
这篇关于如何使用ajax Laravel 5.3进行验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!