Javascript 使用multiple select jquery插件从Laravel中的multiselect获取选定值

Javascript 使用multiple select jquery插件从Laravel中的multiselect获取选定值,javascript,php,jquery,laravel,laravel-5.3,Javascript,Php,Jquery,Laravel,Laravel 5.3,我正在使用,因为它有全选选项。我正在尝试勾选创建帖子时选中的项目 这是我所做的,但不起作用 {{ Form::label('tags', 'Tags:') }} <select name="tags[]" multiple="multiple" id="tags"> @foreach($tags as $tag) <option value="{{$tag->id}}">{{$tag->name}}</option>

我正在使用,因为它有全选选项。我正在尝试勾选创建帖子时选中的项目

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

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

如果有人能帮助我,我会很高兴。

说到底,这只是一个HTML选择元素。给定tags[]的名称,它将在表单中提交,并通过控制器以$request->get'tags'的形式访问,或者如果使用helper,则通过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。您可以按如下方式设置选中的默认值:

{{ 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是否在所选标记id的列表中,如果是,我们正在设置所选属性。您的插件将理解这一点并正确地翻译它。

我认为您应该使用类似$'tags'的可能重复项。multipleSelect'setSelects',[1,3];而不是$'tags'。多重选择。val@GilleQ. 你链接的线程没有使用jquery插件。谢谢你的建议。您的代码仅显示选定的标记。我希望显示所有标记,并仅勾选选定的标记。如果用户希望更改帖子的标签,那么用户希望更改帖子的标签。上面提到的代码与之完美配合。我切换到了“多选”,因为它有“全选”选项。@ZacharyDale我的代码完全符合您的要求。它循环所有标记并仅选择以前选择的标记。这会使未选中的项处于未选中状态。
{{ 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>