刷新后如何保持复选框处于选中状态



0

我正在尝试在搜索类别后选中复选框。但是它的错误explode((:参数#2($string(的类型必须是字符串,数组给定

<input id="subCats-{{$s->id}}" name="category[]" type="checkbox" value="{{ $s->id }}"   
@if (request()->category != "" && in_array($s->id,explode(',', request()->category)))
checked
@endif
>

我对有问题

<input type="checkbox" name="level" value="0" id="lvl-0"
@if (request()->level == 0)
checked
@endif

它总是被检查,因为如果我不请求它的null,它认为它的0我尝试过(request((->level===0(,但它仍然不起作用。

其他有水平的人正在使用

<input type="checkbox" name="level" value="1" id="lvl-1"
@if (request()->level == 1)
checked
@endif
<input type="checkbox" name="level" value="2" id="lvl-2"
@if (request()->level == 2)
checked
@endif

问题出在

in_array($s->id,explode(',', request()->category)))

explose从字符串生成数组,但您的";request((->类别可能不会给您一个字符串,它已经是一个数组了。

所以也许它的工作原理是:

in_array($s->id, request()->category ?? []))

我认为无论if语句如何,都在检查它。所以这可能会起作用:

<input type="checkbox" :checked="{{ request()->level === 0 }}" />

要解决null/0的问题,您可以在条件中添加一个检查,以确保值不为空,如下所示:

@if (request()->level == 0 && !is_null(request()->level))
checked
@endif

最新更新