我需要帮助,因为我有执行代码的问题。 在我的数据库中,我存储了一个多选像这样格式的数组:[“5”,“6”,“7”,“8”]我使用json_encode来存储我的数组。
我有一个带有select multiple(https://www.virtuosoft.eu/code/bootstrap-duallistbox)的表单。
此输入填充表格的数据。所以这是填写左侧的列表。
我想填写右边的列表,我的数据存储在数据库中。要做到这一点,我必须将选择对应的每个选项。 但我不知道这样做......我认为我使用if fore条件的双foreach但是......
一些代码可以解释这一点:
保存所有选项的表格:
表名:婚礼
字段:id,title
保存所选选项的表格
表名:步骤
字段:id,participant =>这个字段有weddings.id的数量,如[“5”,“6”,“7”,“8”]
要填写我的选择列表,我这样做
<select multiple="multiple" id="participants" class="form-control" name="participants[]">
@foreach ($weddings as $wedding)
<option value="{{ $wedding->id }}" >{{ $wedding->title }} </option>
@endforeach
</select>
要从步骤中检索数据,请执行此操作
foreach(json_decode($step->participants) as $k => $v){
echo '<option value="'.$v.'" selected>'.$v.'</option>';
}
因为我需要在选项上加上'选中',所以这个选项会转到右侧列表。
如何将2 foreach与我的步骤表中的值商店“选中”结合婚礼表?
我希望你理解我。
非常感谢。
PS:我使用Laravel
答案 0 :(得分:1)
试试这个,最重要的是要理解它!
// select all participants
// for example lets say you got this from your database
$data = '["5","7","9","2"]';
// now decode it
$data = json_decode($data);
$weddings = [];
// convert values to integers
foreach($data as $key => $value)
{
$weddings[$key] = (Int) $value;
}
// create select input
$input = '<select>';
foreach($weddings as $id)
{
// lets say you want wedding id 5 to be selected
// all you have to do is add an If statement and that's it !
if($id === 5) {
// this is wedding id 5 !
$input .= '<option value="'.$id.'" selected>'.$id.'</option>';
} else if ($id === 7) {
// do something with wedding id 7 ?
$input .= '<option value="'.$id.'" class="number7">'.$id.'</option>';
} else {
$input .= '<option value="'.$id.'">'.$id.'</option>';
}
}
// close select input tag
$input .= '</select>';
echo $input;
答案 1 :(得分:0)
太棒了!!!它有效。
但是我需要在第二个foreach之后更改第一个foreach的结束因为如果不是我只有循环的最后一个项目。
非常感谢 azjezz 。
有关信息,这是我的工作代码:
<div id="select-participants" class="form-group {{ $errors->has('participants') ? 'has-error' : '' }}">
<label for="participants" class="col-sm-2 control-label">{!! $errors->has('participants') ? '<i class="fa fa-times-circle-o"></i>' : '' !!}Participants</label>
<div class="col-sm-10">
<select multiple="multiple" id="participants" class="form-control" name="participants[]">
@php
$export_json_participants = json_decode($preparationStep->participants);
@endphp
@foreach($export_json_participants as $key => $value)
$export_json_participants[$key] = $value;
@foreach ($weddings as $wedding)
<option value="{{ $wedding->id }}" {{ $wedding->id == $export_json_participants[$key] ? 'selected' : '' }}>{{ $wedding->title }}</option>
@endforeach
@endforeach
</select>
@if ($errors->has('participants'))
<span class="help-block">
<strong>{{ $errors->first('participants') }}</strong>
</span>
@endif
</div>
</div>
非常感谢,这很好,我明白了。 : - )