在下面的循环中,我正在获取包并正常将其数据返回到卡中。一切正常,但如果我想通过他们的ID删除一个特定的包。例如,当我想删除ID为1的包时,它会删除包ID 4。我已经调试并发现它只是将错误的ID返回到URL。因此删除错误的对象。
@foreach($packages as $package)
<div class="modal" tab index="-1" role="dialog"id="deleteModal">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Confirmation</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p class="text-center">Are you sure that you want to delete this package information ?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">No</button>
<a href="{{route('packages.new.delete',$package->id)}}" class="btn btn-success">
Yes
</a>
</div>
</div>
</div>
<div class="card mb-4" style="width: 80%;">
<div class="card-header">
<div class="row">
<div class="col-md-2">
<b>User: {{$package->user->name}}</b>
</div>
<div class="col-md-4">
<b>{{$package->created_at}}</b>
</div>
<div class="col-md-4">
<h6><b>#{{$package->packageID}}</b></h6>
</div>
<div class="col-md-1">
<a href="{{route('packages.status',$package->id)}}" class="btn btn-outline-info float-right mr-2">
<i class="fa fa-clock"></i>
</a>
</div>
<div class="col-md-1">
<button type="button" class="btn btn-outline-info float-right mr-2"
data-toggle="modal"
data-target="#deleteModal">
<i class="fa fa-trash"></i>
</button>
</div>
</div>
</div>
<div class="card-body">
<img class="float-left mr-3" src="{{asset('images/defaultpackage.png')}}" style="width: 10%" alt="Card image cap">
<div class="row">
<div class="col-md-6">
<h5 class="card-title">{{$package->content}}</h5>
<p class="card-text text-muted">{{$package->instructions}}</p>
<a href="#" class="card-link">Card link</a>
<a href="#" class="card-link">Another link</a>
</div>
<div class="col-md-4">
<h5 class="card-title">Warehouse Info</h5>
<div class="card-text"><span class="text-muted">Courier Service:</span> <b> {{$package->cn_courier}} </b><br>
<span class="text-muted">Courier Tracking No.:</span> <b> {{$package->cn_tracking_no}} <br>
@if($package->pictures == 0 )
<span class="text-muted">Image: No</span> <br>
@elseif($package->pictures == 1)
<span class="text-muted">Images:</span> <b>Yes </b><br>
@endif
<span class="text-muted">Pack:</span> <b>{{$package->pack->name}} <br>
<span class="text-muted">Total Weight:</span>
@if($package->weight == null)
<b>
Unknown
</b>
@else
{{$package->weight}} kg
@endif
</b>
</b>
</div>
</div>
</div>
</div>
</div>
@endforeach
{{$packages->links()}}
答案 0 :(得分:0)
<div class="modal" tab index="-1" role="dialog"id="deleteModal">
显示您正在通过此循环生成的HTML中创建重复的ID。
ID应该是每页唯一的。您可能需要在id中添加一些内容,以使这些卡中的每一个都是唯一的。
拥有重复的id会导致脚本以您期望的元素为目标,因为如果多个元素存在错误的id,则未定义哪个元素将被定位。
这很可能是“删除”的原因。定位错误的HTML元素。
答案 1 :(得分:0)
正如您所看到的,您正在使用循环来显示数据和操作按钮:
此处您没有唯一身份证明:id="deleteModal"
模式
将唯一ID放在:id="deleteModal_'.$package->id.'"
。
和按钮data-target="#deleteModal_'.$package->id.'"
注意:JS的ID是唯一的,所以永远不要重复使用
答案 2 :(得分:0)
您将模态窗口放入循环并生成多个模态。相反,将模态移动到循环外部以具有一个模态。循环让包列出它们(很可能是你做过)并使用id,name等数据属性,如<a data-id="{{ $package->id}}" data-name="{{ $package->name}}">
接下来,添加一个jQuery函数并在模态中使用id,name等。例如:
$('#deleteModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget)
var id = button.data('id')
var name = button.data('name')
var action = $(this).find('form').attr('action')
$(this).find('form').attr('action', action + '/' + id)
})