从多重选择jQuery插件Laravel中获取选定值
我使用wenzhixin/multiple-select,因为它有选择所有选项。我试图在创建帖子时选中勾选的项目。从多重选择jQuery插件Laravel中获取选定值
这就是我所做的,但它不起作用。
{{ 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>
我会thakful如果有人能帮助我。
在一天结束时,它只是一个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
属性。你的插件会理解这一点,并正确翻译它。
感谢您的建议。您的代码只显示选定的标签。我想要显示所有标签并仅勾选选定的标签。如果incase用户想要用户想要更改帖子的标签。 –
以前我使用select2 jquery插件handeling标签。上面提到的代码与它完美协作。我切换到多选,因为它已选择所有选项。 –
@ZacharyDale我的代码完全符合你的状态。它循环“所有标签”,并选择“只有先前选择的标签”。这留下*未选中*未选中的那些*。 – Ohgodwhy
[在Laravel中从多选表单中获取选定值]的可能副本(http://stackoverflow.com/questions/15358227/getting-selected-values-from-a-multiple-select-form-in-laravel ) –
我想你应该使用类似'$('#tags')。multipleSelect('setSelects',[1,3]);'而不是'$('#tags')。multipleSelect()。val() ' –
@GilleQ。你链接的线程没有使用jquery插件。 –