Laravel Заполнить поле выбора на основе другого поля выбора - PullRequest
0 голосов
/ 26 октября 2018

Я не уверен, с чего начать.Я использую поля формы Laravel и LaravelCollective.Я собираюсь заполнить второе поле выбора script (содержащее даты) на основе выбора в первом поле выбора patient, содержащее имена.Я предполагаю, что он каким-то образом задействует JavaScript?

Модель Script содержит столбец patient_id, который связывает его с моделью Patient, поэтому его можно использовать для фильтрации дат сценария только по тем, которые принадлежат пациенту..

Контроллер

$patients_select = Patient::orderBy('last_name', 'asc')
    ->get()
    ->pluck('full_name', 'id');

$scripts_select = Script::orderBy('prescribe_date', 'desc')
//      ->where('patient_id', $patient_id)
    ->pluck('prescribe_date', 'id')
    ->map(function ($date, $key) {
        return date('m/d/Y', strtotime($date));
    });

Лезвие

<div class="form-group">
    {{Form::label('patient', 'Patient')}}
    {{Form::select(
        'patient',
        $patients_select,
        null, 
        ['class' => 'form-control', 'placeholder' => 'Select a Patient']
    )}}
</div><!-- /form-group -->

<div class="form-group">
    {{Form::label('script', 'Script')}}
    {{Form::select(
        'script',
        $scripts_select,
        null, 
        ['class' => 'form-control', 'placeholder' => 'Select a Script']
    )}}
</div><!-- /form-group -->

1 Ответ

0 голосов
/ 26 октября 2018

Вам нужно будет прослушать событие change на событии, которое выберет пациент (да, в javascript). Здесь есть как минимум две возможности:

  1. Сохраните все данные «сценария» в переменной javascript и затем заполните опции в сценарии выбора.

  2. Отобразите все возможные варианты выбора в файле .blade и скройте их с помощью display: none. В зависимости от выбора пациента вам нужно будет показать только один сценарий выбора. Будьте осторожны, чтобы не отправить их все при отправке формы.

Хорошо, вы также можете перезагрузить страницу после выбора, но я сомневаюсь, что вы хотите это сделать. ;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...