我想在提交表单后保持选择选项处于选中状态。我正在使用带有引导的Laravel 7



视图代码如下:我还通过compact传递要选择的变量,但这种技术不起作用

<select class="form-control" name="month">
@foreach ($cement_cmonths as $cement_cmonth)
<option {{$month == $cement_cmonth->cmonth ? "selected" : ""}} value=" 
{{$cement_cmonth->cmonth}}">{{$cement_cmonth->cmonth}}</option>
@endforeach 
</select>

$month是要保持选中的选定变量,我正在通过compact传递它。

条件失败:

{{ $month == $cement_cmonth->cmonth ? "selected" : "" }}

以上内容不计算true,因此selected属性不应用于任何option

这意味着您的$month$cement_cmonth->cmonth值不相等。这可能是因为它们确实不是相同的('jan' != 'feb'),也可能是值相同,但大小写不同。

当您使用strings时,您需要注意字符大小写,因为==是区分大小写的。

下列计算结果为false:

'jan' == 'Jan'

要避免此问题,请使用strcasecmp:

{{ strcasecmp($month, $cement_cmonth->cmonth) === 0 ? "selected" : "" }}

最新更新