I'm new in Laravel.
When I click delete nothing happen, after refresh page the post deleting.
My controller
public function destroy(Request $request)
{
if(isset($request->id)){
$post = Post::findOrFail($request->id);
$post->delete();
}
}
my route
Route::delete('/adminpanel/dashboard/posts/', 'Adminpanel\PostsController@destroy')->name('post.delete');
HTML
<a class="btn btn-danger deletebtn" data-post="{{ $post->id }}">
i class="fas fa-minus"></i></a>
javascript
<script type="text/javascript">
$(document).on('click', '.deletebtn', function(ev){
let postid = $(this).attr("data-post");
$.ajax({
method: 'DELETE',
url: '{{ route('post.delete') }}',
dataType: 'json',
data: {id:postid,"_token": "{{ csrf_token() }}"},
success: function (data) {
alert(data);
},
error: function (data) {
alert(data);
}
});
});
Try this.
Option #1:
<script type="text/javascript">
$(document).on('click', '.deletebtn', function(ev){
let postid = $(this).attr("data-post");
$.ajax({
method: 'DELETE',
url: '{{ route('post.delete') }}',
dataType: 'json',
data: {id:postid,"_token": "{{ csrf_token() }}"},
success: function (data) {
location.reload();
},
error: function (data) {
alert(data);
}
});
});
Option #2: in your controller
public function destroy(Request $request)
{
if(isset($request->id)){
$post = Post::findOrFail($request->id);
$post->delete();
return redirect()->back();
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.