Laravel 使用数组选择的 Blade Form Multiselect 不起作用
Laravel Blade Form Multiselect selected using array not working
我试图让 multiselect 以一种形式工作,我正在使用 laravel 并向我的视图传递一个名为 correlated[= 的变量25=],一个ID数组,指的是select的模型相关的模型,这里是我对抗的代码:
@foreach($categories as $category)
@foreach($correlated as $c)
@if($c === $brand_id)
@php($selected = "selected")
@endif
@endforeach
<option class="text-center" value="{{ $category->id }}" selected="{{ $selected }}">{{ ucfirst($category->name) }}</option>
@endforeach
我检查了 brand_id 和 $c 值,它们是正确的。有什么想法吗?
编辑: 已更正,似乎是最正确的方法,但仍然无效...
@php $selected = "" @endphp
<select multiple name="categoriesField[]" class="form-control" size="{{ count($categories) }}">
@foreach($categories as $category)
@php $selected = '' @endphp
@if(in_array($category->id, $correlated))
@php $selected = 'selected' @endphp
@endif
<option class="text-center" value="{{ $category->id }}" @php echo $selected @endphp>{{ ucfirst($category->name) }}</option>
@endforeach
</select>
edit 2:用上面的代码解决了,我的浏览器不知何故行为错误,没有显示 selected 选项,我想我会检查唯一的答案.
你可以试试这个
在您的 <select>
标签将品牌 ID 存储在变量中之前
@php $brandIds = collect($correlated)->toArray() @endphp
在您的 <select>
标签内使用 php in_arrya()
函数检查您的 $brand_id
变量的值是否在 $brandIds
数组内,然后 select 该选项为 selected。
@foreach($categories as $category)
<option class="text-center" value="{{ $category->id }}" @if(in_array($brand_id, $brandIds)) selected @endif>{{ ucfirst($category->name) }}</option>
@endforeach
希望这对你有用:)
我试图让 multiselect 以一种形式工作,我正在使用 laravel 并向我的视图传递一个名为 correlated[= 的变量25=],一个ID数组,指的是select的模型相关的模型,这里是我对抗的代码:
@foreach($categories as $category)
@foreach($correlated as $c)
@if($c === $brand_id)
@php($selected = "selected")
@endif
@endforeach
<option class="text-center" value="{{ $category->id }}" selected="{{ $selected }}">{{ ucfirst($category->name) }}</option>
@endforeach
我检查了 brand_id 和 $c 值,它们是正确的。有什么想法吗?
编辑: 已更正,似乎是最正确的方法,但仍然无效...
@php $selected = "" @endphp
<select multiple name="categoriesField[]" class="form-control" size="{{ count($categories) }}">
@foreach($categories as $category)
@php $selected = '' @endphp
@if(in_array($category->id, $correlated))
@php $selected = 'selected' @endphp
@endif
<option class="text-center" value="{{ $category->id }}" @php echo $selected @endphp>{{ ucfirst($category->name) }}</option>
@endforeach
</select>
edit 2:用上面的代码解决了,我的浏览器不知何故行为错误,没有显示 selected 选项,我想我会检查唯一的答案.
你可以试试这个
在您的 <select>
标签将品牌 ID 存储在变量中之前
@php $brandIds = collect($correlated)->toArray() @endphp
在您的 <select>
标签内使用 php in_arrya()
函数检查您的 $brand_id
变量的值是否在 $brandIds
数组内,然后 select 该选项为 selected。
@foreach($categories as $category)
<option class="text-center" value="{{ $category->id }}" @if(in_array($brand_id, $brandIds)) selected @endif>{{ ucfirst($category->name) }}</option>
@endforeach
希望这对你有用:)