I have used Ajax to sent data to the controller, unfortunately when I retrieve data it’s empty nothing is sent. although it does give me the data when I get it via JQuery before it’s sent.
below is the code of Ajax ——————-
$.ajax({ url: $('form#add-user-form').attr('action'), method: $('form#add-user-form').attr('method'), data: form.serializeArray(), processData: false, dataType: 'json', contentType: false, beforeSend:function(){ $(form).find('span.error-text').text(''); alert('working' + " " + user['fname']); }, success:function(data){ if (data.code == 0 ){ $.each (data.error, function(prefix, value){ alert(prefix + ' ' + value[0]); $(form).find('span.'+prefix+'_error').text(value[0]); }); alert('complete'); }else { $(form)[0].reset(); alert(data.msg) } } });
—————–Laravel Controller method which receives the data —————-
public function store(Request $request) { $validator = Validator::make($request -> all(), ['fname' => 'required|min:5|max:25', 'lname' => 'required|min:5|max:25', 'email' => 'required|email|unique:users', 'pass' => 'required|min:8|max:20|', 'confirm-pass' => 'required|min:8|max:20' ]); if (!$validator -> passes() ){ return response()->json(['code'=> 0, 'error'=> $validator->errors()->toArray(), $request->fname]); }else { $user = new users(); $user -> name = $request -> fname ; $user -> email = $request -> email ; $user -> password = $request -> pass; $query = $user -> save(); if ( !$query ){ return response() -> json(['code'=> 0, 'msg' => 'something went wrong']); }else { return response() -> json(['code' => 1, 'msg' => 'users has been successfully added']); } } }
Advertisement
Answer
I have found the answer, instead of using $.ajax method, I replaced it with $.post function of JQuery and everything is working perfect.