使用Modal确认删除时table的id值为null时如何处理错误?
How to handle error when id value of table is null when using Modal confirm delete?
所以我有模式来确认删除操作,但是当表格数据为空/没有任何数据时,因为我没有要调用的 ID 而出现错误?但是如果我有超过 1 个数据,我的删除模式代码可以完美地工作.. 当我删除 table.
中的最后一个数据时发生错误
我已经试过了:
错误信息是:
Undefined variable $listproduct on --> index.blade.php)
Possible typo $listproduct
Did you mean $listproducts?
我的循环函数是@foreach($listproducts as $listproduct)
这是我的按钮 :
<td>
<a href="#" class="btn btn-danger delete"
data-toggle="modal"
data-target="#deleteModal"
productid="{{$listproduct->id}}"> Delete
</a>
</td>
这是我的模态 :
<!-- Delete Warning Modal -->
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="Delete" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Delete Contact</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<form action="{{ route('products.destroy', $listproduct->id ) }}" method="post">
@csrf
@method('DELETE')
<div class="modal-body">
<label for="id">
<input id="id" name="productid">
</label>
<h5 class="text-center">Are you sure you want to delete this contact?</h5>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-sm btn-danger">Yes, Delete Contact</button>
</div>
</form>
</div>
</div>
</div>
<!-- End Delete Modal -->
这是我获取 ID 的脚本(我在编写这段代码时使用它:
<form action="{{ url('delete', 'id' ) }}" method="post">
but still not works
) :
$(document).on('click','.delete',function(){
let id = $(this).attr('productid');
$('#id').val(id);
});
这是我的产品总监:
public function destroy($id): RedirectResponse
{
$deleteads = Product::findOrFail($id);
$deleteads->delete();
return redirect('products');
}
这是我的路线(我正在使用资源):
Route::group(['middleware' => ['auth']], function() {
***Route::resource('products', ProductController::class);***
Route::delete('/selected-products', [ProductController::class, 'deleteSelectedItem'])->name('products.deleteSelected');
});
首先,你不能在HTML中使用你自己的productid
属性,因此你应该使用数据属性来保存你的信息。
其次,您在模式中的表单没有更新它的 action 属性,因此只有一个产品 ID 保留在 action 属性中。
尝试先在操作中添加 #
,然后在单击要删除的项目时,使用 JQuery 更新表单的操作并添加正确的 URL 和产品ID。
您的 ID 应保存在数据属性中,如下所示:
<td>
<a href="#" class="btn btn-danger delete"
data-toggle="modal"
data-target="#deleteModal"
data-productid="{{$listproduct->id}}"> Delete
</a>
</td>
模态中的表单:
<form action="#" method="post" id="delete_product_form">
@csrf
@method('DELETE')
<div class="modal-body">
<label for="id">
<input id="id" name="productid">
</label>
<h5 class="text-center">Are you sure you want to delete this contact?</h5>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-sm btn-danger">Yes, Delete Contact</button>
</div>
</form>
JQuery 处理表单动作属性更新的代码:
$(document).on('click','.delete',function(){
let id = $(this).data('productid');
$('#delete_product_form').attr('action', '/products/' + id);
});
所以我有模式来确认删除操作,但是当表格数据为空/没有任何数据时,因为我没有要调用的 ID 而出现错误?但是如果我有超过 1 个数据,我的删除模式代码可以完美地工作.. 当我删除 table.
中的最后一个数据时发生错误我已经试过了:
错误信息是:
Undefined variable $listproduct on --> index.blade.php)
Possible typo $listproduct
Did you mean $listproducts?
我的循环函数是@foreach($listproducts as $listproduct)
这是我的按钮 :
<td>
<a href="#" class="btn btn-danger delete"
data-toggle="modal"
data-target="#deleteModal"
productid="{{$listproduct->id}}"> Delete
</a>
</td>
这是我的模态 :
<!-- Delete Warning Modal -->
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="Delete" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Delete Contact</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<form action="{{ route('products.destroy', $listproduct->id ) }}" method="post">
@csrf
@method('DELETE')
<div class="modal-body">
<label for="id">
<input id="id" name="productid">
</label>
<h5 class="text-center">Are you sure you want to delete this contact?</h5>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-sm btn-danger">Yes, Delete Contact</button>
</div>
</form>
</div>
</div>
</div>
<!-- End Delete Modal -->
这是我获取 ID 的脚本(我在编写这段代码时使用它:
<form action="{{ url('delete', 'id' ) }}" method="post">
but still not works
) :
$(document).on('click','.delete',function(){
let id = $(this).attr('productid');
$('#id').val(id);
});
这是我的产品总监:
public function destroy($id): RedirectResponse
{
$deleteads = Product::findOrFail($id);
$deleteads->delete();
return redirect('products');
}
这是我的路线(我正在使用资源):
Route::group(['middleware' => ['auth']], function() {
***Route::resource('products', ProductController::class);***
Route::delete('/selected-products', [ProductController::class, 'deleteSelectedItem'])->name('products.deleteSelected');
});
首先,你不能在HTML中使用你自己的productid
属性,因此你应该使用数据属性来保存你的信息。
其次,您在模式中的表单没有更新它的 action 属性,因此只有一个产品 ID 保留在 action 属性中。
尝试先在操作中添加 #
,然后在单击要删除的项目时,使用 JQuery 更新表单的操作并添加正确的 URL 和产品ID。
您的 ID 应保存在数据属性中,如下所示:
<td>
<a href="#" class="btn btn-danger delete"
data-toggle="modal"
data-target="#deleteModal"
data-productid="{{$listproduct->id}}"> Delete
</a>
</td>
模态中的表单:
<form action="#" method="post" id="delete_product_form">
@csrf
@method('DELETE')
<div class="modal-body">
<label for="id">
<input id="id" name="productid">
</label>
<h5 class="text-center">Are you sure you want to delete this contact?</h5>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-sm btn-danger">Yes, Delete Contact</button>
</div>
</form>
JQuery 处理表单动作属性更新的代码:
$(document).on('click','.delete',function(){
let id = $(this).data('productid');
$('#delete_product_form').attr('action', '/products/' + id);
});