使用多选jquery插件从Laravel中的multiselect中获取所选值

时间:2017-01-23 14:32:41

标签: javascript php jquery laravel laravel-5.3

我正在使用here,因为它已选择所有选项。我试图在创建帖子时选中已选中的选定项目。

这就是我所做的,但它不起作用。

{{ Form::label('tags', 'Tags:') }}
<select name="tags[]" multiple="multiple" id="tags">
    @foreach($tags as $tag)
        <option value="{{$tag->id}}">{{$tag->name}}</option>
    @endforeach
</select>
<script>
    $("#tags").multipleSelect({
        placeholder: "Tags please"
    });
    $('#tags').multipleSelect().val({!!json_encode($post->tags()->getRelatedIds() )!!}).trigger('change');
</script>

如果有人能帮助我,我会很沮丧。

1 个答案:

答案 0 :(得分:0)

在一天结束时,它只是一个HTML选择元素。鉴于tags[]的名称,这将在表单中提交,并可通过控制器$request->get('tags')访问,或者如果使用帮助程序,则request()->get('tags');

此外,您可以通过以下方式将所选项目传递到下一页:

public function myFunctionToHandleTheForm()
{
    $tags = App\Tag::all(); //for example, no idea what you use
    $selectedTags = request()->get('tags');

    return view('my.view', compact('selectedTags', 'tags');
}

现在,$tags将是一个数字排序的数组(升序),其中包含从您的表单提交的ID's。您可以设置如下所示的默认值:

{{ Form::label('tags', 'Tags:') }}
<select name="tags[]" multiple="multiple" id="tags">
    @foreach($tags as $tag)
        <option value="{{$tag->id}}" {{ in_array($tag->id, $selectedTags) ? 'selected="selected"' : null }}>{{$tag->name}}</option>
    @endforeach
</select>

在上文中,我们会检查标记ID是否在selected tag id's列表中,如果是,我们会设置selected属性。您的插件会理解这一点并正确翻译。