我正在尝试创建一个更新页面,我已经完成了页面的大部分内容,复选框部分除外。出于某种我还没有弄清楚的原因,复选框是重复的。我正在使用 Laravel。
这是表单特定部分的代码。
<div class="form-group">
<label>Focus Area</label>
<br>
@foreach(FocusArea::all() as $focusArea)
@if(isset($project))
<div class="checkbox material checkbox-success">
<label>
@foreach($project->getIdsOfFocusAreas() as $selectedFocusArea)
@if($selectedFocusArea == $focusArea->focus_area_id)
<input type="checkbox" name="focus-area[]" value="{{ $selectedFocusArea }}" checked>
@else
<input type="checkbox" name="focus-area[]" value="{{ $selectedFocusArea }}">
@endif
@endforeach
{{ $focusArea->name }}
</label>
</div>
<br>
@endif
@endforeach
</div>
一些额外的信息:
FocusArea::all()生成的数组元素个数为5。
getIdsOfFocusAreas()生成的数组元素个数为2。
由于第 2 点,我知道它复制了两次,我只是不确定它一开始为什么要复制。
最佳答案
试试这个:
<div class="form-group">
<label>Focus Area</label>
<br>
<?php $selectedFlug = 0; ?>
@foreach(FocusArea::all() as $focusArea)
@if(isset($project))
<div class="checkbox material checkbox-success">
<label>
@foreach($project->getIdsOfFocusAreas() as $selectedFocusArea)
@if($selectedFocusArea == $focusArea->focus_area_id)
<input type="checkbox" name="focus-area[]" value="{{ $selectedFocusArea }}" {{ ($selectedFocusArea == $focusArea->focus_area_id) ? 'checked' : '' }} >
<?php $selectedFlug = 1; ?>
@break
@else
<?php $selectedFlug = 0; ?>
@endif
@endforeach
@if($selectedFlug == 0)
<input type="checkbox" name="focus-area[]" value="{{ $focusArea->focus_area_id }}">
@endif
{{ $focusArea->name }}
</label>
</div>
<br>
@endif
@endforeach
</div>
关于php - 复选框重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40393894/