Laravel 初学者 使用模态删除数据



我的模态运行良好,可以删除数据,但不能删除我选择删除的确切 id,例如示例 id:1、2、3、4,我将选择 id:4 但 id:4 不会删除删除的 id 是 id:1

这是我在AllSystemController中的删除功能

public function deletestorydata($id)
{
$story = Story::findOrFail($id);
$story->delete();
return redirect()->back()->with('success', 'Data has successfully deleted.');
}

这是我的路线网络.php在故事部分

Route::get('stories/table', 'AllSystemController@indexstoriesdata')->name('stories.table');
Route::get('/stories/add', 'AllSystemController@createviewstories')->name('create.stories');
Route::post('/stories/storiesdata/submit', 'AllSystemController@submitstories')->name('submit.stories.data');
Route::get('/stories/view/{id}', 'AllSystemController@showviewstories')->name('view.story.data');
Route::get('/stories/edit/{id}', 'AllSystemController@editviewstories')->name('edit.stories');
Route::patch('/stories/{id}', 'AllSystemController@updatestorydata')->name('update.story.data');
Route::delete('/deletestory/{id}', 'AllSystemController@deletestorydata')->name('delete.story.data');

这是我index_stories_data.blade的观点.php

<table id="table-style-hover" class="table table-striped table-hover table-bordered nowrap">
<thead>
<tr>
<th width="1%">Image</th> 
<th>Title</th>
<th>Flagship</th>
<th>Category</th>
<th>Author</th>
<th class="text-center">Action</th>
</tr>
</thead>
<tbody>
@foreach($story as $row)
<tr>
<td><img src="{{ asset('storage/stories_images')}}/{{$row->display_image}}" class="img-thumbnail" width="50"></td>
<td>{{$row->title}}</td>
<td>{{$row->is_flagship}}</td>
<td>{{$row->category_name}}</td>
<td>{{$row->name}}</td>
<td>
<div class="dropdown">
<button class="btn btn-primary" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Action&nbsp;<i class="fa fa-sort-desc" aria-hidden="true"></i></button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a style="color:black; font-weight: bold;" class="dropdown-item" href="{{url('/stories/view', $row->id)}}" target="_blank">View</a>
<a style="color:black; font-weight: bold;" class="dropdown-item" href="{{url('/stories/edit', $row->id)}}" target="_blank" class="btn btn-primary">Edit</a>
<a style="color:black; font-weight: bold;" class="dropdown-item" data-toggle="modal" data-target="#delete" href="">Delete</a>
</div>
</div>

这是我的模态和脚本

<div class="modal fade modal-icon" id="delete" tabindex="-1" role="dialog" aria- 
labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabel">Delete Confirmation</h4>
</div>
<form method="post" class="delete_form" action="{{url('/deletestory', $row->id)}}">
{{csrf_field()}}
<input type="hidden" name="_method" value="DELETE">
<div class="modal-body">
<h4 class="text-center">Are you sure you want to delete it?</h4>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-process" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-danger">Confirm</button>
</form>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function(){
$('.delete_form').on('delete', function(){
if(confirm("Are you sure you want to delete this data?"))
{
return true;
}
else
{
return false;
}
});
});
</script>
@endforeach
</tbody>
</table>

我尝试dd($story(; 值,示例 ID:1、2、3、4,我将选择要删除的按钮是 id:3,dd 中的结果是 id:1 我的函数有问题吗? 我该如何解决这个问题?

您是否有js函数来根据要删除的项目更改表单操作中项目的ID?如果不是,您的 id 将始终为 1 或数据中第一个对象的任何 id。

<form method="post" class="delete_form" action="{{url('/deletestory', $row->id)}}">

我编辑了你的完整代码,不要在你的 foreach 中使用你的 js。

试试这个:

<table id="table-style-hover" class="table table-striped table-hover table-bordered nowrap">
<thead>
<tr>
<th width="1%">Image</th> 
<th>Title</th>
<th>Flagship</th>
<th>Category</th>
<th>Author</th>
<th class="text-center">Action</th>
</tr>
</thead>
<tbody>
@foreach($story as $row)
<tr>
<td><img src="{{ asset('storage/stories_images')}}/{{$row->display_image}}" class="img-thumbnail" width="50"></td>
<td>{{$row->title}}</td>
<td>{{$row->is_flagship}}</td>
<td>{{$row->category_name}}</td>
<td>{{$row->name}}</td>
<td>
<div class="dropdown">
<button class="btn btn-primary" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Action&nbsp;<i class="fa fa-sort-desc" aria-hidden="true"></i></button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a style="color:black; font-weight: bold;" class="dropdown-item" href="{{ url('/stories/view', $row->id)}}" target="_blank">View</a>
<a style="color:black; font-weight: bold;" class="dropdown-item" href="{{url('/stories/edit', $row->id)}}" target="_blank" class="btn btn-primary">Edit</a>
<!-- Delete method -->
<a href="#" style="color:black; font-weight: bold;" data-href="{{ url('/deletestory', $row->id) }}" class="btn btn-info btn-outline btn-circle btn-lg" data-toggle="modal" data-target="#myModal" title="Delete">Delete</a>
</div>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
<!-- Delete Modal -->
<div class="container">
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Delete !!!</h4>
</div>
<div class="modal-body text-center">
<p class="my-0 font-weight-bold">Are you sure you want to delete this data???</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<a class="btn btn-danger btn-ok">Delete</a>
</div>
</div>
</div>
</div>
</div>

<!-- Delete Modal JS -->
<script>
$('#myModal').on('show.bs.modal', function(e) {
$(this).find('.btn-ok').attr('href', $(e.relatedTarget).data('href'));
});
</script>

最新更新