如何根據編輯中父下拉串列的選定值自動加載或檢索子類別/依賴下拉串列。如果我點擊編輯,醫生應該會立即加載。我一直在尋找解決方案幾個小時,請幫忙。
刀
<select name="clinic_id" data-placeholder="Search" data-allow-clear="true"
class="form-control select2bs4" style="width: 100%;" id="load_clinic">
<option selected="selected"></option>
@foreach ($clinic as $id => $item)
<option value="{{ $id }}"
{{ $schedule->clinic_id == $id ? 'selected' : '' }}>
{{ $item }}
</option>
@endforeach
</select>
<select name="doctor_id" data-placeholder="Search" data-allow-clear="true"
hljs-string">" style="width: 100%;" id="load_doctor">
</select>
Javascript
$(document).ready(function() {
$('#load_clinic').on('change', function(e) {
var clinic_id = e.target.value;
if (clinic_id) {
$.ajax({
url: "{{ route('getDoctor') }}",
type: "POST",
data: {
clinic_id: clinic_id,
_token: "{{ csrf_token() }}"
},
success: function(data) {
if (data) {
$('#load_doctor').empty();
$('#load_doctor').append(
'<option value=""> Select Doctor</option>');
$.each(data, function(key, value) {
$('#load_doctor').append($(
"<option/>", {
value: key,
text: value
}));
});
} else {
$('#load_doctor').empty();
}
}
})
} else {
$('#load_doctor').empty();
}
});
});
控制器
public function edit($id)
{
$schedule = Schedule::findOrFail($id);
$clinic = Clinic::pluck('name', 'id');
$doctor = Doctor::get()->pluck('full_name', 'id');
return view('admin.schedule.edit', compact('schedule', 'doctor', 'clinic'));
}
public function getDoctor(Request $request)
{
$id = $request->clinic_id;
$doctor = Doctor::where('clinic_id', $id)->get()->pluck('full_name', 'id');
return response()->json($doctor);
}
uj5u.com熱心網友回復:
在使用 ajax 之前,您可以使用 PHP 獲得初始選擇選項。
使用 get() 時考慮使用復數名詞,使用 ie first() 時考慮使用單數
另外,考慮在刀片中使用 @if(condition) @endif 而不是三元運算子
這是 PHP 的解決方案,如果你想用 AJAX 獲得醫生,除了 onChange 監聽器,你還應該在頁面加載時呼叫它,
控制器
public function edit($id)
{
$schedule = Schedule::findOrFail($id);
$clinic = Clinic::pluck('name', 'id');
$doctor = Doctor::where('clinic_id', $schedule->clinic_id)->get();
return view("admin.schedule.edit", compact('schedule', 'doctor', 'clinic'));
}
刀
<select name="clinic_id" data-placeholder="Search" data-allow-clear="true"
class="form-control select2bs4" style="width: 100%;" id="load_clinic">
<option selected="selected"></option>
@foreach ($clinic as $id => $item)
<option value="{{ $id }}"
{{ $schedule->clinic_id == $id ? 'selected' : '' }}>
{{ $item }}
</option>
@endforeach
</select>
<select name="doctor_id" data-placeholder="Search" data-allow-clear="true"
hljs-string">" style="width: 100%;" id="load_doctor">
@foreach($doctor as $item)
<option value="{{$item->id}}">{{$item->full_name}}</option>
@endforeach
</select>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/531410.html
標籤:拉拉维尔
上一篇:Laravel9$currentPageUrl沒有分頁
下一篇:APP_URL更改后不重繪
