我有一系列Grades
包含在循环中。我想检查数据库驱动(循环)复选框的值是否与循环中的任何值匹配。如果它与给定项目匹配,则将该输入项标记为已选中。'
例如,print_r($grades_array)
输出以下数据:
Array ( [0] => Grade 5 [1] => Grade 8 [2] => Grade 9 )
这是我在每个输入项目中的循环(我使用Laravel和Semantic UI,但PHP概念应该仍然相同):
@foreach($list_of_grades as $output_grade)
<div class="inline field">
<div class="ui checkbox">
<input type="checkbox" name="grade"
@if(in_array($output_grade->name, $grade_array))
checked="checked"
@endif
tabindex="0" class="hidden">
<label>{{ $output_grade->name }}</label>
</div>
</div>
@endforeach
这是我得到的输出结果:
然而,这是我期望得到的输出:
关于代码有什么问题的任何想法?
并且,只是在它被问及之前澄清,是的,$output_grade->name
值和数组中的值匹配。我也可以交换ID,它会产生相同的单一检查值结果。
答案 0 :(得分:0)
我也遇到同样的情况,如果您找到更好的解决方案,请使用技巧,
@php
$arrayValue = explode(',', $grade_array);
@endphp
@foreach($arrayValue as $data)
@php $arrayData[$data] = $data @endphp
@endforeach
@foreach($list_of_grades as $output_grade)
<div class="inline field">
<div class="ui checkbox">
<input type="checkbox" name="grade"
@if(in_array($output_grade->name, $arrayData))
checked="checked"
@endif
tabindex="0" class="hidden">
<label>{{ $output_grade->name }}</label>
</div>
</div>
@endforeach
但是它对我有用吗?