我已将多选数值存储在数据库中作为字符串
现在,在尝试编辑需要的值时,将此突出显示的字符串作为数组提取并将其发送到编辑视图,以便我可以使用此选定值填充多选。
我的代码用于多选
<div class="form-group">
<label class="control-label col-md-3">News For
<span class="required" aria-required="true"> * </span>
</label>
<div class="col-md-4">
{!! Form::select('news_todisplay[]',['users'=>'Users','staff'=>'Staff','cinemahall'=>'Cinemahall'],$todisplayarray,array('class'=>'form-control','multiple'=>'multiple')) !!}
</select>
</div>
</div>
$ todisplayarray是从数据库中获取的数组,即用户,员工,电影院
我的控制器代码
public function edit($id)
{
$newsdetails=General_news::findOrFail($id);
$todisplayarray=explode(',',$newsdetails->news_todisplay);
return view('admin.editnews',compact('newsdetails','todisplayarray'));
}
页面查看源显示此
<select class="form-control" multiple="multiple" name="news_todisplay[]"><option value="users">Users</option><option value="staff">Staff</option><option value="cinemahall" selected="selected">Cinemahall</option></select>
这仅显示所选的最后一个值,其中应显示3个所选值。
请让我知道我哪里出错了。
答案 0 :(得分:0)
找到以下答案
<?php
//get the old values from form
$old = old('category');
//get data from database table field
$cate= explode(',',$data->category_ids);
//stay the values after form submission
if($old){ $cate=$old; }
?>
<select id="categories" name="category[]" multiple>
@foreach ($categories as $val)
<option value="{{ $val->id }}" <?php echo in_array($val->id,$cate)?"selected" :"" ;?> >{{ ucfirst($val->category_name) }}</option>
@endforeach
</select>
我已经使用id&#39; s循环了类别数据并匹配表中存储的数据