如何在 laravel 的多选复选框列表中显示选中的复选框?
How to show selected checkbox in multiselect checkbox list in laravel?
我有一个多 select 复选框列表。我想使用复选框 selected.
在列表中显示存储值
用户信息存储在Partner_Prefencetable中,用户宗教栏目命名为p_religion
$profile_data= DB::table('partner_prefence')->select('p_religion')->first();
从宗教中获取宗教table
$religion_data=DB::table('religion')->select('religion_id','religion_name')->orderby('religion_name')->get();
多个select列表
<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' : ''}}
如果是多select列表,p_religion列是否保存多个ID?那么使用 in_array()
可以代替使用 $profile_data->p_religion == $religion->religion_id
.
in_array ($religion->religion_id, explode(',', $profile_data->p_religion))
添加了 explode()
调用,以防您存储内爆数组。
您也可以尝试将 blade 语法用于 if 语句内联,看看它的显示是否不同。
<select multiple="multiple" name="religion[]">
@foreach($religion_data as $religion)
<option value="{{$religion->religion_id}}" @if($profile_data->p_religion == $religion->religion_id) selected @endif>
{{$religion->religion_name}}
</option>
@endforeach
</select>
据我所知,您有多个 select 表单,因此您需要显示 select 多列..
您将 id 存储为字符串,但很难检查字符串中的特定数字。如果将字符串转换为数组,则可以使用 in_array()
方法轻松检查。如果给定值存在于给定数组
中,此方法将 return 为真
<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>
我有一个多 select 复选框列表。我想使用复选框 selected.
在列表中显示存储值用户信息存储在Partner_Prefencetable中,用户宗教栏目命名为p_religion
$profile_data= DB::table('partner_prefence')->select('p_religion')->first();
从宗教中获取宗教table
$religion_data=DB::table('religion')->select('religion_id','religion_name')->orderby('religion_name')->get();
多个select列表
<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' : ''}}
如果是多select列表,p_religion列是否保存多个ID?那么使用 in_array()
可以代替使用 $profile_data->p_religion == $religion->religion_id
.
in_array ($religion->religion_id, explode(',', $profile_data->p_religion))
添加了 explode()
调用,以防您存储内爆数组。
您也可以尝试将 blade 语法用于 if 语句内联,看看它的显示是否不同。
<select multiple="multiple" name="religion[]">
@foreach($religion_data as $religion)
<option value="{{$religion->religion_id}}" @if($profile_data->p_religion == $religion->religion_id) selected @endif>
{{$religion->religion_name}}
</option>
@endforeach
</select>
据我所知,您有多个 select 表单,因此您需要显示 select 多列..
您将 id 存储为字符串,但很难检查字符串中的特定数字。如果将字符串转换为数组,则可以使用 in_array()
方法轻松检查。如果给定值存在于给定数组
<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>