使用laravel 5.2中的选定值填充多项选择

时间:2016-07-10 10:58:34

标签: php laravel laravel-5.2 multi-select

我已将多选数值存储在数据库中作为字符串

enter image description here

现在,在尝试编辑需要的值时,将此突出显示的字符串作为数组提取并将其发送到编辑视图,以便我可以使用此选定值填充多选。

我的代码用于多选

 <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个所选值。

请让我知道我哪里出错了。

1 个答案:

答案 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循环了类别数据并匹配表中存储的数据