如何在Laravel 8中获取多选下拉菜单的值?

3lxsmp7m  于 2022-12-24  发布在  其他
关注(0)|答案(3)|浏览(135)

我有这个多选下拉代码

<select id="kit" name="tool_id[]" multiple class="form-control single-select selectpicker">
    <option value="">Select Tool Name</option>
    <?php foreach($tools as $tool){?>
    <option value="<?php echo $tool->id;?>"><?php echo $tool->name;?></option>
    <?php }?>
</select>

我可以在数据库中插入数据,但无法在show blade上检索

值存储在数据库中,如下所示
帮助我从MySql DB检索数组值
在laravel中从数据库检索数组值

flmtquvp

flmtquvp1#

由于要存储数组,因此可以使用in_array来获得所需的结果:

// I will assume here that you are passing a list of IDs from view
// I think in your example its "tool_id"

<option value="{{$tool->id}}" {{in_array($tool->id, $listOfIds) ? 'selected' : ''}}>{{$tool->name}}</option>

您可以从https://www.w3schools.com/php/func_array_in_array.asp阅读更多示例
此外,您不需要在blade文件中调用<?php //code ?>,您可以简单地使用{{ //code }}来呈现它,您可以从https://laravel.com/docs/9.x/blade中阅读有关blade语法的更多信息
祝你好运!

yqlxgs2m

yqlxgs2m2#

如果可以从数据库中获取tool_id的值,请使用以下命令。

{!! Form::select('tool_id', $yourOptionArray, $toolIds, ['class' => 'form-control', 'multiple' => 'multiple']) !!}

默认情况下,这会将selected关键字添加到1113

huus2vyu

huus2vyu3#

由于select标记的值保存为数组,因此只需使用in_array条件即可完成此操作,如下所述:

<option value="{{ $tool->id }}" @if(in_array($tool->id,$IDsList)) selected @endif>{{ $tool->name }}</option>

假设$IDsList(从控制器传递到视图刀片)存储了$tool-〉id的值

相关问题