首页 > 解决方案 > 如何在另一个下拉选项中自动选择下拉列表中的选项

问题描述

我想从上面的下拉列表中选择一个下拉列表中的选项。我正在尝试在 Livewire 中做到这一点,但我真的不知道该怎么做(我是新手)。可以用另一种语言而不是 Livewire 来做到这一点吗?

这是我的 Blade.php 视图:

<div>
<div class="form-group">
    <label for="company">{{ __('assistances.company') }}</label>
    <select wire:model="selectedCompanyId" contract-label="{{ trans_choice('contracts.label', 2) }}"
                             priority-label="{{ __('companies.priority') }}"
                             remaining-label="{{ __('companies.remaining_hours') }}"
                             previous-value="{{ $assistance->company_id ?? old('company_id') }}">
        <option value="0" selected disabled>-</option>
        @foreach(\App\Company::all() as $company)
            <option  value="{{ $company->id }}"
                    @if(old('company_id', $company_id ?? '') == $company->id) selected @endif>
                {{ $company->ref }} - {{ $company->name }}
            </option>
        @endforeach
    </select>
    @error('company_id')
    <span class="invalid-feedback d-block">{{ $message }}</span>
    @enderror
</div>

@if(!@is_null($this->company->id))
    {{$this->company->name}}
@endif
@feature('commissions')
<div class="form-group">
<label for="commission_id">{{ trans_choice('commissions.name', 1) }}</label>
        <select name="commission_id"
                          classes="form-control @error('commission_id') is-invalid @enderror">
            <option value="0" selected disabled>-</option>
            @foreach(\App\Commission::with('company')->where('status', '!=', \App\Enums\CommissionStatus::ARCHIVED)->get() as $commission)
                <option value="{{ $commission->id }}"
                        @if(old('commission_id') == $commission->id) selected @endif>
                    {{ $commission->ref }} @isset($commission->company) - {{ $commission->company->name }} @endisset - {{ $commission->description }}
                </option>
            @endforeach
        </select>
        @error('commission_id')
        <span class="invalid-feedback d-block">{{ $message }}</span>
        @enderror
</div>
@endfeature

这是我的 livewire 组件:

class AutoFill extends Component
{
    public $selectedCompanyId;


    public function mount()
    {
        $this->selectedCompanyId = 0;
    }

    public function render()
    {
        return view('livewire.auto-fill',[
            'company' => Company::all(),
            'commission'=> Commission::all(),
        ]);
    }

    public function getCompanyProperty()
    {
        return Company::find($this->selectedCompanyId);
    }
}

标签: phplaravel-livewire

解决方案


Checkout Dependent Dropdowns Parent-Child YouTube 视频解释了基于另一个下拉值的下拉值。Livewire 让使用起来更容易。


推荐阅读