我不确定从哪里开始。我正在使用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 -->
答案 0 :(得分:0)
一旦患者选择了事件,您将不得不收听change
事件(是,使用javascript)。这里至少有两种可能性:
将所有“脚本”数据存储在javascript变量中,然后在脚本选择中填充选项。
渲染.blade
文件中所有可能的选择,并用display: none
隐藏它们。根据患者的选择,您将只需要显示一个脚本选择。提交表单时请注意不要全部发送。
好吧,您也可以在选择后重新加载页面,但是我怀疑您想这样做。 ;)