[英]How to Validate the Field When Empty Post - Ajax, Laravel
我在Laravel Blade中使用Ajax將數據發布到Controller。 我為此表單添加了Jquery驗證,當“提交”按鈕單擊其轉到相應的“路由和顯示錯誤”時。 如何驗證這種類型的字段。
$(document).ready(function() {
$("#add").click(function(event) {
if( !$('#ledger_name').val() ) {
$('#ledger_name').parents('p').addClass('warning');
}
event.preventDefault();
$.ajax({
type: 'post',
url: $("#add").attr('data-url'),
data: {
'_token': '{{ csrf_token() }}',
'form_data': $('#Form').serialize(),
},
success: function(data) {
$('#ledger_name').val('');
$('#openning_balance').val('0.00');
$('#ob_type').val('');
$('#under').val('');
$('#ledger_address').val('');
$("#newLedger .close").click();
$(".result").html(data.success).css({'color': 'green', 'text-align': 'center'}).delay(5000).fadeOut();
},
error: function(data)
{
var errors = '';
for(datos in data.responseJSON){
errors += data.responseJSON[datos] + '<br>';
}
$('#response').show().html(errors); //this is my div with messages
}
});
});
});
控制器代碼:
public function addnewledgers(Request $request){
$usersid = Auth::user()->id;
$companyids = Session()->get('companyids');
$values = array();
parse_str($_POST['form_data'], $values);
$insertledgers=Ledger::create(['ledger_name'=>$values['ledger_name'],'openning_balance'=>$values['openning_balance'],'ob_type'=>$values['ob_type'],'under'=>$values['under'],'ledger_address'=>$values['ledger_address'],'company_id'=>$companyids,'user_id'=>$usersid,'created_by'=>$usersid]);
return response()->json(['success' => 'Ledger Details Added Successfully',]);
}
您可以如下創建驗證器函數,並將驗證消息發送到數組。
protected function validator(array $data )
{
return Validator::make($data, [
'name' => 'required|string|max:255|unique:users',
]);
}
然后在您的控制器方法中調用該驗證函數。
$validation = $this->validator($request->all(),true );
if($validation->fails()){
$errors = $validation->errors();
return response()->json(
['errors' => $errors, 'status' => 'error'],200
);
}
您可以如下更改方法。 (建議使用$ request代替$ _POST)
public function addnewledgers(Request $request){
$usersid = Auth::user()->id;
$companyids = Session()->get('companyids');
Validator::make( $request->all(), [
'ledger_name' => 'required',
//other validations
]);
if($validation->fails()){
$errors = $validation->errors();
return response()->json(
['errors' => $errors, 'status' => 'error'],200
);
}
$values = array();
parse_str($_POST['form_data'], $values);
$insertledgers=Ledger::create(['ledger_name'=>$values['ledger_name'],'openning_balance'=>$values['openning_balance'],'ob_type'=>$values['ob_type'],'under'=>$values['under'],'ledger_address'=>$values['ledger_address'],'company_id'=>$companyids,'user_id'=>$usersid,'created_by'=>$usersid]);
return response()->json(['success' => 'Ledger Details Added Successfully',]);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.