Laravel根据另一个选择框填充选择框

时间:2018-10-26 19:17:52

标签: javascript php laravel

我不确定从哪里开始。我正在使用Laravel和LaravelCollective表单字段。我要做的是根据包含名称的第一个选择框script中的选择填充第二个选择框patient(包含日期)。我以为它会以某种方式涉及JavaScript?

“脚本”模型包含一个patient_id列,该列将其链接到“患者”模型,因此可用于将脚本日期过滤为仅患者拥有的日期。

控制器

$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 :(得分:0)

一旦患者选择了事件,您将不得不收听change事件(是,使用javascript)。这里至少有两种可能性:

  1. 将所有“脚本”数据存储在javascript变量中,然后在脚本选择中填充选项。

  2. 渲染.blade文件中所有可能的选择,并用display: none隐藏它们。根据患者的选择,您将只需要显示一个脚本选择。提交表单时请注意不要全部发送。

好吧,您也可以在选择后重新加载页面,但是我怀疑您想这样做。 ;)