如何在 foreach laravel 中使用值为 0 和 1 的复选框
How to use checkbox with value 0 and 1 in foreach laravel
我想输入值为 0 和 1 的复选框,如果我选中值 1,如果没有选中值 0。
my code in View
@foreach($criteria as $data)
<table>
<tr>
<td class="col-4">
<input type="hidden" name="criteria_id[]" value="{{ $data->id }}">
{ $data->criteria_name}} :
</td><br>
<td class="col-2">
<input type="hidden" class="form-control" name="score[]" value="0">
<input type="checkbox" class="form-control" name="score[]" value="1">
</td>
</tr>
</table>
@endforeach
我在控制器中的代码
for ($i=0; $i < count($request->criteria_id) ; $i++) {
$score_detail[] = [
//$detail_score = new DetailScoreModel(),
'score_id' => $getscoreid->id,
'criteria_id' => $request->criteria_id[$i],
'score' => $request->score[$i],
'description' => $request->description[$i]
];
}
为什么数据库中的结果不匹配?
正确的结果应该是1,1,0,1,1,0,1,1,1,1 但是存储的数据是0,1,0,1,0,1,0,1, 0,1
您需要将criteria_id设置为得分键。并删除分数的隐藏输入。
您的看法,
@foreach($criteria as $data)
<table>
<tr>
<td class="col-4">
<input type="hidden" name="criteria_id[]" value="{{ $data->id }}">
{ $data->criteria_name}} :
</td><br>
<td class="col-2">
<input type="checkbox" class="form-control" name="score[{{ $data->id }}]" value="1">
</td>
</tr>
</table>
@endforeach
你的控制器,现在根据下面的 criteria_id 检查分数是否存在。
$criteria_ids = $request->criteria_id;
foreach ($criteria_ids as $i => $criteria_id) {
$score_detail[] = [
'score_id' => $getscoreid->id,
'criteria_id' => $criteria_id,
'score' => isset($request->score[$criteria_id]) ? 1 : 0,
'description' => $request->description[$i]
];
}
我想输入值为 0 和 1 的复选框,如果我选中值 1,如果没有选中值 0。
my code in View
@foreach($criteria as $data)
<table>
<tr>
<td class="col-4">
<input type="hidden" name="criteria_id[]" value="{{ $data->id }}">
{ $data->criteria_name}} :
</td><br>
<td class="col-2">
<input type="hidden" class="form-control" name="score[]" value="0">
<input type="checkbox" class="form-control" name="score[]" value="1">
</td>
</tr>
</table>
@endforeach
我在控制器中的代码
for ($i=0; $i < count($request->criteria_id) ; $i++) {
$score_detail[] = [
//$detail_score = new DetailScoreModel(),
'score_id' => $getscoreid->id,
'criteria_id' => $request->criteria_id[$i],
'score' => $request->score[$i],
'description' => $request->description[$i]
];
}
为什么数据库中的结果不匹配?
正确的结果应该是1,1,0,1,1,0,1,1,1,1 但是存储的数据是0,1,0,1,0,1,0,1, 0,1
您需要将criteria_id设置为得分键。并删除分数的隐藏输入。
您的看法,
@foreach($criteria as $data)
<table>
<tr>
<td class="col-4">
<input type="hidden" name="criteria_id[]" value="{{ $data->id }}">
{ $data->criteria_name}} :
</td><br>
<td class="col-2">
<input type="checkbox" class="form-control" name="score[{{ $data->id }}]" value="1">
</td>
</tr>
</table>
@endforeach
你的控制器,现在根据下面的 criteria_id 检查分数是否存在。
$criteria_ids = $request->criteria_id;
foreach ($criteria_ids as $i => $criteria_id) {
$score_detail[] = [
'score_id' => $getscoreid->id,
'criteria_id' => $criteria_id,
'score' => isset($request->score[$criteria_id]) ? 1 : 0,
'description' => $request->description[$i]
];
}