Laravel:如何使用 select2.js 更新多个 Select 选项
Posted
技术标签:
【中文标题】Laravel:如何使用 select2.js 更新多个 Select 选项【英文标题】:Laravel : How to Update multiple Select option with select2.js 【发布时间】:2018-12-11 03:06:34 【问题描述】:我想更新我的数据库,但它在选项字段中发送重复值。
这是我的 html 代码:
<select name="size_id[]" multiple="multiple" style="margin-bottom:15px;"
class="form-control select_multiple">
@foreach($sizes as $skey=>$sitem)
@foreach ($product->Sizes as $pkey=>$psize)
<option value="$sitem->id " @if($sitem->id == $psize->id)selected="selected"@endif>
$sitem->name+$skey
</option>
@endforeach
@endforeach
</select>
产品型号:
public function Sizes()
return $this->belongsToMany(Size::class,'product_sizes');
尺寸型号:
public function Products()
return $this->belongsToMany(Product::class, 'size_products','product_id','size_id');
【问题讨论】:
$sitem->id
将形成 select2 的键,并且因为您在内部循环中使用它,所以它会被重复。
怎么解决
@if($sitem->id == $psize->id)
你为什么这样做?
只是为了添加标签
【参考方案1】:
您可以使用 Collections containsStrict 来检查它的项目 id 是否等于任何尺寸,如下所示:
<select name="size_id[]" multiple="multiple" style="margin-bottom:15px;"
class="form-control select_multiple">
@foreach($sizes as $skey=>$sitem)
<option value="$sitem->id " @if($product->Sizes->containsStrict('id', $item->id)) selected="selected" @endif>
$sitem->name + $skey
</option>
@endforeach
</select>
【讨论】:
以上是关于Laravel:如何使用 select2.js 更新多个 Select 选项的主要内容,如果未能解决你的问题,请参考以下文章
Select2.js v4.0:如何使用本地数组数据源设置默认选择值?
如何使用 Select2.js 对从 Ajax 调用返回的数据进行多选结果?
如何在 select2.js v4.0 中显示 ajax 数据?