【发布时间】:2020-07-16 17:45:18
【问题描述】:
在我的 Laravel 项目中,我有一个预约表格,患者可以在从下拉列表中选择一个分支后选择医生。我使用 AJAX 来完成这些功能。
现在在任何验证失败后,所有恢复的表单值都接受医生。
但我想在验证失败后自动恢复选择的医生。
html 表单
<select class="form-control appointment_form_searchField" id="appointment_branch" name="appointment_branch" style="font-size:.7em;;width: 100%;">
<option value="">Select Branch</option>
@if($_SESSION['branch'] != null)
@foreach($_SESSION['branch'] as $data)
<option value="{{ $data->id }}">{{ $data->name }}</option>
@endforeach
@endif
</select>
<select class="form-control" id="appointment_doctor" name="appointment_doctor" style="font-size:.7em;padding: 0.6500rem .75rem;width: 100%;">
<option value="">Select Doctor</option>
</select>
AJAX
jQuery(".appointment_form_searchField").change(function() {
var branch_id = $("#appointment_branch").val();
var token = $('input[name=_token]').val();
if(branch_id.trim() != '')
{
jQuery.ajax({
url:"{{ url('/filter_doctor') }}",
type: 'GET',
data: {_token :token, branch_id : branch_id},
success:function(msg){
$('#appointment_doctor option').remove();
trHTML = '';
trHTML += "<option value=''>Select Doctor</option>";
msg.forEach(function(item){
trHTML += "<option value='"+item.id+"'>" + inputem.name + "</option>";
});
$('#appointment_doctor').append(trHTML);
}
});
}
});
控制器
public function filter_doctor(Request $request)
{
$branch_id = $request->branch_id;
$query = DB::table('service_doctors');
$query->select('doctor_id','inactive_dates_in_this_month');
if($branch_id != '0')
$query->where('branch_id','=', $branch_id);
$result_time = $query->get();
$array_doctor_id = $result_time->pluck('doctor_id');
$doctor = Doctor::whereIn('id', $array_doctor_id)->get();
return $doctor;
}
有人帮忙吗?提前致谢
【问题讨论】:
-
您能否提供
url('/filter_doctor')的控制器文件的详细信息,以便我们查看。 -
该代码有几个缺陷。首先,假设您收到 JSON 响应,但未在请求中设置 json dataType,您正在迭代 msg 属性。因此,该 msg 解析可能会失败。
-
然后看起来你正在删除所有
甚至在检查ajax是否失败之前,假设你正在接收json。 -
如果 JSON 是您收到的响应,您应该返回某种状态标志来确定响应是否成功。在状态字段中显示“ok”或“error”。
-
@Deepak...我已经用
controller更新了我的代码
标签: javascript php jquery laravel formvalidation.io