[英]Laravel Populate Select Box Based on Another Select Box
我不知道从哪里开始。 我正在使用Laravel和LaravelCollective表单字段。 我要做的是根据包含名称的第一个选择框patient
中的选择填充第二个选择框script
(包含日期)。 我假设它将以某种方式涉及JavaScript?
脚本模型包含一个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 -->
您将不得不在患者选择的事件上收听change
事件(是的,在javascript中)。 这里至少有两种可能性:
将所有“脚本”数据存储在javascript变量中,然后在脚本选择中填充选项。
呈现.blade
文件中的所有可能选择,并使用display: none
隐藏它们。 根据患者的选择,您将只需要显示一个脚本选择。 提交表单时请注意不要全部发送给他们。
好吧,您也可以在选择后重新加载页面,但是我怀疑您是否想这样做。 ;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.