Livewire 复选框默认选中

问题描述 投票:0回答:2

我想要什么

  • 默认选中所有复选框
  • 获取价值表 ID 以供稍后使用

第一期:

  • 可以按 id 对它们进行排序吗?
    因为目前它是按检查顺序对它们进行排序的。
    screenshot 2

如果有人可以帮助我,我会很高兴谢谢:D

这是我的观点:

@foreach($sheets as $sheet)

  <div class="inputGroup">

     <input id="{{$loop->index}}" wire:model="selectedBoxes" type="checkbox" value="{{$loop->index}}" checked/>
     <label for="{{$loop->index}}">Feuille {{$loop->index+1}}: {{$sheet}}</label>

  </div>
@endforeach

这是我 dd($sheets) 时的结果:

^ array:4 [▼
  0 => "All ValueRAM FURY"
  1 => "Non-ECC ValueRAM"
  2 => "All FURY"
  3 => "KSM (Server Premier)"
]

这是我的组件:

public $sheets = [];
public $selectedBoxes = [];

...
    public function readExcel()
    {
        ...

        $data = [];

        // Return an import object for every sheet
        foreach($import->getSheetNames() as $index => $sheetName)
        {
            $data = $import->getSheetNames();
            $this->sheets = $data;
        }
     }

网站浏览:
screenshot 1

laravel checkbox laravel-livewire
2个回答
1
投票

您可以从选择中删除

checked
标签并让
wire:model
完成它的事情:

public $sheets = [
        0 => "All ValueRAM FURY",
        1 => "Non-ECC ValueRAM",
        2 => "All FURY",
        3 => "KSM (Server Premier)"
    ];

// wire:model will ensure that all are checked by default.
public $selectedBoxes = [true, true, true, true];

在你看来: (看一下wire:model属性,checked属性没有了)

@foreach($sheets as $sheet)
    <div class="inputGroup">
        <input id="sheet-{{$loop->index}}"
               wire:model="selectedBoxes.{{ $loop->index }}"
               type="checkbox"
               value="{{$loop->index}}" />
        <label for="sheet-{{$loop->index}}">Feuille {{$loop->index+1}}: {{$sheet}}</label>
    </div>
@endforeach

0
投票

感谢 Laisender,我找到了我想要的东西。

我的组件发生了什么变化:

    public $counter = 0;
    ...

        foreach($import->getSheetNames() as $index => $sheetName)
        {

            $data = $import->getSheetNames();
            $this->sheets = $data;
            array_push($this->selectedBoxes, "$this->counter");
            $this->counter += 1;

        }

我的看法:

                @foreach($sheets as $sheet)

                    <div class="inputGroup">

                        <input id="sheet-{{$loop->index}}" wire:model="selectedBoxes.{{$loop->index}}" type="checkbox" value="{{$loop->index}}"/>
                        <label for="sheet-{{$loop->index}}">Feuille {{$loop->index+1}}: {{$sheet}}</label>
                    </div>

                @endforeach
© www.soinside.com 2019 - 2024. All rights reserved.