I am trying to submit a modal form using jQuery+Ajax. But the form isn't getting submitted to the controller. The only message that I receive in the console is this one-
{readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
abort: ƒ ( statusText )
always: ƒ ()
catch: ƒ ( fn )
done: ƒ ()
fail: ƒ ()
getAllResponseHeaders: ƒ ()
getResponseHeader: ƒ ( key )
overrideMimeType: ƒ ( type )
pipe: ƒ ( /* fnDone, fnFail, fnProgress */ )
progress: ƒ ()
promise: ƒ ( obj )
readyState: 4
responseText: "Array↵(↵ [d_token] => Ox0d4UwoFNKZXDTZFKoX0iijIpaQQWpHoQ8B394p↵ [id] => 12↵ [d_full_name] => Hrushikesh Satapathy↵ [d_password] => 8585858585↵)↵"
setRequestHeader: ƒ ( name, value )
state: ƒ ()
status: 200
statusCode: ƒ ( map )
statusText: "OK"
then: ƒ ( onFulfilled, onRejected, onProgress )
__proto__: Object
I made sure to include the meta tag of CSRF token, but everytime I click on the submit button (the Delete button in the UI) of the modal form, the error: part of the Ajax is triggered. Here are my codes
Modal
<button type="button" id="delete_user" class="btn btn-danger" data-toggle="modal" data-target="#deleteModal">Delete</button>
<div class="modal-body ">
<strong class="text-info text-center ">Please Confirm your Details</strong>
<form id="delete_user_form" method="post">
@csrf
<div class="form-group">
<input type="hidden" name="_token" id="d_csrf" value="{{Session::token()}}">
<input type="hidden" class="form-control" id="d_id" name="d_id" value="{{Auth::user()->id}}">
<!-- <input type="text" class="form-control" id="d_id" name="d_id" value="{{Auth::user()->id}}" readonly> -->
<label for="d_full_name" class="col-form-label">Full Name:</label>
<input type="text" class="form-control" id="d_full_name" name="d_full_name">
</div>
<div class="form-group">
<label for="d_password" class="col-form-label">Confirm Your Password:</label>
<input type="password" class="form-control" name="d_password" id="d_password">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-danger" id="final_delete">Delete User</button>
</div>
</div>
</div>
</div>
Ajax part
<script type="text/javascript">
// $(document).ready(function(){
// alert("HELLO");
// $('#delete_user').click(function(e){
// e.preventDefault();
$('#deleteModal').ready(function(){
// alert("HELLO");
$('#final_delete').on('click', function(e) {
e.preventDefault();
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
// var get_data = $("#delete_user_form").serialize();
$.ajax({
method:"post",
url:"delete_user",
cache: false,
processData:true, //Required
contentType: 'application/x-www-form-urlencoded',
// data:get_data,
data:
{
'd_token' : $("#csrf").val(),
'd_id' : $('#d_id').val(),
'd_email' : $('#d_email').val(),
'd_password' : $('#d_password').val(),
},
dataType :"JSON",
success:function (e){
swal({
title: "User deleted Successfully",
text: "You will now be logged out.Sorry to see you go!!",
icon: "warning",
button: "Ok",
dangerMode:true
});
// console.log(e);
setTimeout(function(){ window.location = "login";},2000);
},
error:function (e){
swal({
title: "Oops! Some Error",
text: "Please try again later",
icon: "warning",
button: "Ok",
dangerMode: true,
});
// console.log(e.responseText);
},
}); //ajax ends here
}); //$("#final_delete").click ends
});
////$('#delete_user').click(function(e) ends
// });
// });
</script>
Controller
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
class userController extends Controller
{
public function delete_user(Request $request){
// echo "hello";exit;
$user=Auth::user();
$d_id = $request->d_id;
$d_email = $request->d_email;
$d_password = Hash::make($request->d_password, ['memory' => 1024,'time' => 2,'threads' => 2,]);
// print_r($d_password);exit;
date_default_timezone_set("Asia/Kolkata");
$d_time = date("Y-m-d,H:i:s ");
// print_r($request->all());exit;
// if (Auth::check()) {
$act = "SELECT";
$act2 = "DELETE";
$user_login = DB::select('CALL my_stored_procedures(?,?,?,?,?,?,?,?,?,?,?,?)', array($act,$u_id,"","","","",0,$d_time, "","","",$d_time));
// print "<pre>"; print_r($user_login);exit;
foreach($user_login as $loguser){
if($d_email===$loguser->email){
if ($d_password===$loguser->password)){
// return redirect('welcome_user');
DB::select('CALL my_stored_procedures(?,?,?,?,?,?,?,?,?,?,?,?)', array($act2,$u_id,"","","","",0,$d_time, "","","",$d_time));
return response()->json(
[
'success' => true,
]
);
Auth::logout();
Session::flush();
// return redirect('login');
}else{
return response()->json(
[
'success' => false,
'message'=>"Wrong Password"
]
);
}
}else{
return response()->json(
[
'success' => false,
'message'=>"Wrong Name"
]
);
}
} //foreach ends
// } //auth::check ends
}//delete_user ends here
} //end of class
Route
Route::post('delete_user', 'userController@delete_user')->middleware('auth')->name('delete_user');
The form data is transferred to controller, but the database is not updated. And the success: is never fired in the Ajax. Please let me know what is wrong?