laravel - 如何在 laravel 的多选复选框列表中显示选中的复选框?
问题描述
我有一个多选复选框列表。我想使用选中的复选框在列表中显示存储的值。
用户信息存储在Partner_Prefence表和名为p_religion的用户宗教列中
$profile_data= DB::table('partner_prefence')->select('p_religion')->first();
从宗教表中获取宗教
$religion_data=DB::table('religion')->select('religion_id','religion_name')->orderby('religion_name')->get();
多选列表
<select multiple="multiple" name="religion[]">
@foreach($religion_data as $religion)
<option value="{{$religion->religion_id}}" {{$profile_data->p_religion == $religion->religion_id ? 'selected' : ''}}>{{$religion->religion_name}}</option>
@endforeach
</select>
我无法显示用户拥有哪些宗教
{{$profile_data->p_religion == $religion->religion_id ? 'selected' : ''}}
解决方案
据我了解,您有多选表单,因此您需要显示选定的多列..
您将 id 存储为字符串,但很难检查字符串中的某个数字。如果将字符串转换为数组,则可以轻松检查in_array()
方法。如果给定数组中存在给定值,此方法将返回 true
<select multiple="multiple" name="religion[]">
{{-- no need to explode every time, it will reduce your performance --}}
@php($religions = explode(',', $profile_data->p_religion))
@foreach($religion_data as $religion)
<option
value="{{$religion->religion_id}}"
{{--if user religion id exist in religions then mark as selected--}}
{{in_array($religion->religion_id,$religions) ? "selected" : ""}}>
{{$religion->religion_name}}
</option>
@endforeach
</select>
推荐阅读
- php - 将带有星号的文本列表替换为 ul li [php]
- bash - rdd.pipe 为 grep -i shell 命令抛出 java.lang.IllegalStateException?
- reactjs - 按钮 - React Native
- powerbi - PowerBI 财政年度
- bash - 查找的 Bash 排序顺序 - 同名目录之前的文件
- amazon-cognito - 是否总是需要授权人:aws_iam?(使用身份池,支持非授权访问)
- python-3.x - Python Scipy Curvefit 到线性二次曲线
- c++ - 评估模板括号内的 constexpr
- mysql - mysql - 比较 date=n 和 date=n-1 的字符串值
- kubernetes - Kubernetes Pod 到 Pod 通信