Laravel/Blade: 预选下拉选项
Laravel/Blade: pre-selected dropdown option
我正在使用 foreach
循环通过 bensampo's ENUMS 库生成下拉列表,但我需要能够预先 select 其中一个,因为我有一个编辑查看,我需要它来加载我数据库中的选项。
我的 select 在我的编辑视图中:
<select name="type" id="type" class="form-control">
@foreach ($MailMessageTypes as $value =>$label)
<option value="{{$value}}">{{$label}}</option>
@endforeach
</select>
我的功能在我的 MailMessageController 中编辑:
return view('MailMessage.edit', [
'MailMessage' => $MailMessage],
["MailMessageTypes" => MailMessageType::toSelectArray()
]);
我尝试在控制器中使用枚举库的 getValues()
和 getKeys()
,但这会为我生成(重复),因为 foreach
不断生成所有选项。我正在使用 select2 插件
补充:我正在使用 select2 plugin 作为列表。
在您的“编辑”页面上,您将现有的邮件消息作为 $MailMessage
传递。我假设您的数据库的值为 id
,因此它可以作为 $MailMessage->id
访问。在循环显示每个选项时,您需要检查该选项的值是否等于您正在编辑的消息的 ID。如果匹配,则设置 selected
attribute on the <option>
:
<select name="type" id="type" class="form-control">
@foreach ($MailMessageTypes as $value => $label)
<option value="{{$value}}" {{($MailMessage->id == $value) ? 'selected' : ''}}>
{{$label}}
</option>
@endforeach
</select>
在您的 HTML 中,您的 <select>
最终看起来像这样:
<select name="type" id="type" class="form-control">
<option value="1">COM01</option>
<option value="2" selected>COM02</option>
<option value="3">COM03</option>
// ... the rest of the options
</select>
我正在使用 foreach
循环通过 bensampo's ENUMS 库生成下拉列表,但我需要能够预先 select 其中一个,因为我有一个编辑查看,我需要它来加载我数据库中的选项。
我的 select 在我的编辑视图中:
<select name="type" id="type" class="form-control">
@foreach ($MailMessageTypes as $value =>$label)
<option value="{{$value}}">{{$label}}</option>
@endforeach
</select>
我的功能在我的 MailMessageController 中编辑:
return view('MailMessage.edit', [
'MailMessage' => $MailMessage],
["MailMessageTypes" => MailMessageType::toSelectArray()
]);
我尝试在控制器中使用枚举库的 getValues()
和 getKeys()
,但这会为我生成(重复),因为 foreach
不断生成所有选项。我正在使用 select2 插件
补充:我正在使用 select2 plugin 作为列表。
在您的“编辑”页面上,您将现有的邮件消息作为 $MailMessage
传递。我假设您的数据库的值为 id
,因此它可以作为 $MailMessage->id
访问。在循环显示每个选项时,您需要检查该选项的值是否等于您正在编辑的消息的 ID。如果匹配,则设置 selected
attribute on the <option>
:
<select name="type" id="type" class="form-control">
@foreach ($MailMessageTypes as $value => $label)
<option value="{{$value}}" {{($MailMessage->id == $value) ? 'selected' : ''}}>
{{$label}}
</option>
@endforeach
</select>
在您的 HTML 中,您的 <select>
最终看起来像这样:
<select name="type" id="type" class="form-control">
<option value="1">COM01</option>
<option value="2" selected>COM02</option>
<option value="3">COM03</option>
// ... the rest of the options
</select>