Above answer and from other resources together helped me out to make example similar to situation like 'Setting the session using AJAX in laravel'.
Im posting simple example, which other users might found this helpful.
View - ajax_session.blade.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#submit').on('click',function(){
// show that something is loading
$('#response').html("<b>Loading response...</b>");
$.ajax({
type: 'POST',
url: '/set_session',
data: $("#userform").serialize()
})
.done(function(data){
// show the response
$('#response').html(data);
})
.fail(function() {
// just in case posting your form failed
alert( "Posting failed." );
});
// to prevent refreshing the whole page page
return false;
});
});
</script>
</head>
<body>
<form id="userform">
{{ csrf_field() }} <!--required - otherwise post will fail-->
<input type="text" id="uname" name="uname" required/>
<button type='submit' id="submit">Submit</button>
<div id='response'></div>
</form>
</body>
</html>
routes.php
Route::get('session_form', function () {
return view('ajax_session');
});
Route::post('set_session', 'SessionController@createsession');
Route::get('allsession', 'SessionController@getsession');
Controller - sessionController.php
public function createsession(Request $request)
{
\Session::put('uname', $request->uname);
echo "session created";
}
public function getsession()
{
dd(\Session::get('uname'));
}
You can check this by running localhost:8000/session_form. And you can also check session separately by localhost:8000/allsession.
Hope this helps!!!