I am new in laravel and there is problems occured when i submit form using click function ajax jquery controller does not save data to database and everytime response with entire html file. pleas help me.
some information about header
Request URL: http://akshay.laravel/patient1?fname=asdknkl&lname=nknkansd&email=knklansnd&sex=male&city=lknksn&state=klnklna&dob=2011-08-19&bloodtype=AB%2B&description=asak Request Method: GET
Status Code: 200 OK
Remote Address: [::1]:80
Referrer Policy: no-referrer-when-downgrade
Cache-Control: no-cache, private
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
Date: Thu, 12 Jul 2018 10:06:54 GMT
Keep-Alive: timeout=5, max=99
Server: Apache/2.4.27 (Win64) PHP/7.1.9
Set-Cookie: XSRF-TOKEN=eyJpdiI6IkFJRU1DQ3JhSWU2aWRMM0RXQlwvd0NBPT0iLCJ2YWx1ZSI6IlpDN2pLdnVXQUV5b0lZRTlBUG95d3N6dDdXZEJ3ajBGU0g1NVwvaEFYak9PampDajcxQmVVZVhSZTUrVlNsTHhhbW9RWmdLOWNGWTdJNHpYdUhYV1N0Zz09IiwibWFjIjoiZDZiNzQyOGU1MWQxN2ZlZGNiZTkyMWU3NmZhYmMyY2FiMTQ5NGNkZDQ2OGQ3MzVlMzVjYjRhY2ZkMWMzNDg0NiJ9; expires=Thu, 12-Jul-2018 12:06:54 GMT; Max-Age=7200; path=/
Set-Cookie:
laravel_session=eyJpdiI6IjFVK1RDZFlRajVtcWhcL0twNVhtS0NnPT0iLCJ2YWx1ZSI6IllkWkdSSjlPY3pFeGNKSXBZNjVYRGE0TFU4TWxGZ2hwa3VYOGttdlVVM3lSUVFCakZDNFZUZGZkcUY5eFwvWHBOQVdsenY2S09kYlNWUktxY2x3VU1DUT09IiwibWFjIjoiN2VhZTEwNTAxY2YxNTZlNDAzZjJmNTNlYWJhYzcxYjBkY2I0NDZmNTc3N2ViZWU3NmY5Y2NmODg5MzllYWMzNiJ9; expires=Thu, 12-Jul-2018 12:06:54 GMT; Max-Age=7200; path=/; HttpOnly Transfer-Encoding: chunked
X-Powered-By: PHP/7.1.9
Accept: /
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Cookie: XSRF- TOKEN=eyJpdiI6IlBJcVpGRGw5VkN2VDVxTUcra1BzWkE9PSIsInZhbHVlIjoiZGhlT2Npc1Bjdm1PdG8xOThVR1wvbFJMbGdWTG5Pc2V1dDNFdlk0ekE0aFNVT0JTeHJBVzFIaEx2ZkFPK2l5bzdLZHUyYWU2RU5HK0ZcLzBsckRBY25QQT09IiwibWFjIjoiNWU2ZTFlN2EzZmQ5NDM4MzRhNDg3MjBhNTM2M2Q2MjhjOTdlMDRkODUzZTcxOTdhNDkyMTlkN2NlN2ZhNTJiNCJ9; laravel_session=eyJpdiI6IjJLSjUxNGdXZjJtaGptMmNjRFYyakE9PSIsInZhbHVlIjoiRUlYVStKV1pTT3k3RWNYUytUMXVSN0FNV1ZXbzZzZUk3eDJZMXlKeTdkQlwvNWdqcjBGVWpjTFlTeVwvaGFtbmRKc3VmUklKN3ozeERzMjBxKytcLzQyQkE9PSIsIm1hYyI6IjJjNTgyOGJlNzAyYTEzY2FjYmQzNTUxZDBmM2FmZGEyZWU4ZTE1OWY1MDdiNDcxYjExYjNkMzY4MjY5ZGQ0NmQifQ%3D%3D
Host: akshay.laravel
Referer: http://akshay.laravel/patient1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36 X-CSRF-TOKEN: PIZIO18bZb7ce2M5taV04daMDFokJEHuIrZ88bkR X-Requested-With: XMLHttpRequest
fname: asdknkl
lname: nknkansd
email: knklansnd
sex: male
city: lknksn
state: klnklna
dob: 2011-08-19
bloodtype: AB+
description: asak
php file:
<form class="needs-validation" novalidate id="patientform">
<div class="form-row">
<div class="col-md-4 mb-3">
<label for="validationTooltip01">First name</label>
<input type="text" class="form-control" id="fname" placeholder="First name" value="" required>
</div>
<div class="col-md-4 mb-3">
<label for="validationTooltip02">Last name</label>
<input type="text" class="form-control" id="lname" placeholder="Last name" value="" required>
</div>
<div class="col-md-4 mb-3">
<label for="validationTooltipUsername">Email</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text" id="validationTooltipUsernamePrepend">@</span>
</div>
<input type="text" class="form-control" id="email" placeholder="" aria-describedby="validationTooltipUsernamePrepend"
required>
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-3 mb-3">
<div class="custom-control custom-radio">
<input type="radio" id="male" name="sex" value="male" class="custom-control-input">
<label class="custom-control-label" for="male">Male</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" id="female" name="sex" value="female" class="custom-control-input">
<label class="custom-control-label" for="female"> Female</label>
</div>
</div>
@csrf
<div class="col-md-3 mb-3">
<label for="validationTooltip03">City</label>
<input type="text" class="form-control" id="city" placeholder="City" required>
</div>
<div class="col-md-3 mb-3">
<label for="validationTooltip04">State</label>
<input type="text" class="form-control" id="state" placeholder="State" required>
</div>
<div class="col-md-3 mb-3">
<label for="validationTooltip05">DOB</label>
<div class="form-group row">
<div class="col-10">
<input class="form-control" type="date" value="2011-08-19" id="dob">
</div>
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-3 mb-3"> <br><br>
<select class="custom-select" id="bloodtype">
<option selected>Select Blood Type</option>
<option value="AB+">AB+</option>
<option value="AB-">AB-</option>
<option value="A+">A+</option>
<option value="A-">A-</option>
<option value="B+">B+</option>
<option value="B-">B-</option>
<option value="O+">O+</option>
<option value="O-">O-</option>
</select>
</div>
<div class="col-md-9 mb-3">
<label for="exampleFormControlTextarea1">Dieases / Description</label>
<textarea class="form-control" id="description" rows="3"></textarea>
</form>
</div>
</div>
<button class="btn btn-primary" type="submit" id="submitform">Submit form</button>
</form>
controller :
public function store(Request $request)
{
/* */ //
function randomstring($len)
{
$string = "";
$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
for($i=0;$i<$len;$i++)
$string.=substr($chars,rand(0,strlen($chars)),1);
return $string;
}
$pid = randomstring(5);
$fname = $request->fname;
$lname = $request->lname;
$email = $request->email;
$sex = $request->sex;
$city = $request->city;
$state = $request->state;
$dob = $request->dob;
$bloodtype = $request->bloodtype;
$description = $request->description;
DB::table('tables')->insert(
['pid' => $pid, 'fname' => $fname,'lname' => $lname,'email' => $email,'sex' => $sex,'city' => $city,'state' => $state,'dob' => $dob,'bloodtype' => $bloodtype,'description' => $description,]
);
// $insert = DB::table('tables')->insert(['fname'=>$fname]);
// echo $insert;
return redirect('table.admin');
}
javascript file :
$(document).ready(function(){
$( "#submitform" ).click(function() {
var fname = $('#fname').val();
var lname= $('#lname').val();
var email = $('#email').val();
var sex = $('input[name="sex"]:checked').val();
var city = $('#city').val();
var state = $('#state').val();
var dob = $('#dob').val();
var bloodtype = $('#bloodtype').val();
var description = $('#description').val();
$.ajax({
url:"/patient1/",
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data:{
'fname': fname,
'lname': lname,
'email': email,
'sex': sex,
'city': city,
'state': state,
'dob': dob,
'bloodtype': bloodtype,
'description': description
}
});
});
});
Laravel is a very safe environment, it wants you to use a CSRF Token Insert this line of code below your form-tag
{!! csrf_field() !!}