我有一个页面,显示来自数据库的记录和两个按钮,其中添加了新记录并使用Laravel 5.8
中的引导程序模式进行编辑。当我向数据库添加新记录时,一切正常。问题是,在编辑记录时,它仅更改第一个记录,因为它不传输剩余的ID,而始终仅显示第一个ID。当我显示每个按钮编辑的记录时,我会显示记录的ID,并且所有内容都可以正确显示,但是按下按钮后,编辑不会提供ID。在表单中,我使用以下代码。来源:[链接] https://github.com/page4me/transport
@foreach($cars as $car)
@if(($car->status)==1)
<tr>
<td class="text-center">{{$i++}}</td>
<td>{{$car->rodzaj_poj}}<br /><strong> {{$car->marka}} </strong></td>
<td class="text-center">{{$car->nr_rej}}</td>
<td class="text-center">{{$car->nr_vin}}</td>
<td class="text-center">{{$car->dmc}} kg</td>
<td class="text-center">{{$car->wlasnosc}}</td>
<td class="text-center">wprowadzono <br />{{$car->data_wpr}} r.</td>
<td class="text-center" colspan="2">
{{$cid =$car->id}}
<button data-toggle="modal" data-idcar="{{$car->id}}" data-nr_rej="{{$car->nr_rej}}" data-marka="{{$car->marka}}" data-nr_vin="{{$car->nr_vin}}" data-wlasnosc="{{$car->wlasnosc}}" data-data_wpr="{{$car->data_wpr}}" data-dmc="{{$car->dmc}}" data-rodzaj_poj="{{$car->rodzaj_poj}}" data-target="#editModal" role="button" class="btn btn-success btn-sm" alt="Edycja" ><i class="fa fa-edit"></i></button>
<a href="#" role="button" class="btn btn-danger btn-sm">Wycofaj</a>
<!-- edit modal -->
<!-- Modal -->
<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg" role="document">
<div class="modal-content text-left">
<div class="modal-header bg-success">
<div class="card-header bg-success text-light" >
Edycja pojazdu przedsiębiorcy o -
<span style="color:#000;font-size:15px;"> Nr licencji / zezwolenia:
@foreach($dok as $dk)
{{ $dk->nr_dok }}
</span><span style="color: #fff;font-size:15px;">wydano dn. {{ $dk->data_wyd}} r.</span>
@endforeach
</div>
<button type="button" class="close text-light" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
ID: {{$cid =$car->id}}
<!-- Form edit car -->
<form method="post" action="{{ route('pojazdy.update', $cid ) }}">
<div class="row">
@csrf
@method('PATCH')
<div class="col-md-12 form-group">
<label for="nr_rej"><strong>Numer rejestracyjny:</strong></label>
<input type="text" class="form-control" name="nr_rej" id="nr_rej" value="{{$car->nr_rej}}"/>
</div>
</div>
即使它在foreach循环中显示,它始终仅显示第一个ID。正确编辑按钮旁边会显示ID,并且在action = "{{route ('vehicle.update', $ car-> id)}}"
中使用时已经存在问题
答案 0 :(得分:0)
您遇到的问题是,您正在$cars
上循环并将dom中的多个元素设置为同一id
。在该foreach
循环中,您有几个项目将被多次覆盖。
例如:
//This SAME id will appear every time you have a new car loop
<div class="modal fade" id="editModal"/>
//This nr_rej will ONLY be the LAST nr-rej in the loop. It will overwrite every one before it.
<input type="text" class="form-control" name="nr_rej" id="nr_rej" value="{{$car->nr_rej}}"/>
您可以通过多种方式解决此问题。您可以将数组添加到值,也可以将实际的汽车id
添加到dom元素ID(id=nr_rej-{{$car->id}}
),等等。但是通常,如果通过ajax调用加载模态,这是最简单的-这样,您不必在屏幕上为每个循环粘贴模态代码-只需一个循环。
希望这会有所帮助