php - 从数据库编辑页面复选框值
问题描述
我有一张如下表
id | name | pic | level | team
1 John 3 user
2 Ipsum 4 user
3 Lorem 5 supervisor
4 Dolor Amet 5 admin
5 Amet manager 3,4
6 Diego 7 user
7 Michael 5 supervisor
作为用户 ID 5,我想在复选框值中显示我可以看到的团队,并在复选框中编辑或更改它。我试过了,但这是错误的。已检查的用户 id 3 也会再次显示为未选中的值,如下所示
所以视图必须像 ipsum(checked) 和 dolor(not check) 一样
这是刀片视图代码
@foreach($supervisor as $spv)
<div class="checkbox">
@foreach($result as $res)
@if($spv->id == $res->id)
<label>
<input type="checkbox" name="spv[]" value="{{ $spv->id }}" checked>{{ $spv->name }}
</label>
@else
<label>
<input type="checkbox" name="spv[]" value="{{ $spv->id }}">{{ $spv->name }}
</label>
@endif
@endforeach
</div>
@endforeach
这是控制器代码
$query = DB::table('users')->where('id',$id)->first();
$list=explode(',', $query->team);
$result = DB::table('users')->whereIn('id',$list)->get();
$supervisor = Users::where('level','supervisor')->orWhere('level','admin')->get();
你知道失踪在哪里吗?
解决方案
你可以试试这个:
在您的控制器中压缩$list
变量,因为它是团队 ID 的数组:
$query = DB::table('users')->where('id',$id)->first();
$list=explode(',', $query->team);
$result = DB::table('users')->whereIn('id',$list)->get();
$supervisor = Users::where('level','supervisor')->orWhere('level','admin')->get();
return view('your-blade-view', compact('result', 'supervisor', 'list'));
然后在你的刀片中:
@foreach($supervisor as $spv)
<div class="checkbox">
<label>
<input type="checkbox" name="spv[]" value="{{ $spv->id }}" {{ ( in_array($spv->id, $list) ) ? 'checked' : '' }}>{{ $spv->name }}
</label>
</div>
@endforeach
我希望它会有所帮助。
推荐阅读
- linux - 排序命令不适用于大文件
- javascript - 继承了一个参考 fast.fonts.net 的网站——它是什么?
- firebase - Cloud Firestore:如何将文档中的字段设置为空
- c# - TFS MSBuild not restoring nugets for websites in solution
- html - 保持容器固定并在窗口调整大小时显示水平滚动条
- verilog - “包含”和“定义”是什么意思?他们做什么?
- java - 如何提取列表
来自 HashMap 使用流 - c# - MVC 5下拉列表用于编辑视图中的多选值绑定
- python - 使用 glob.glob 设置顺序
- javascript - 单击后 MVC 侧边栏不保持活动状态