为了账号安全,请及时绑定邮箱和手机立即绑定

在日期选择器中禁用选定日期的日期

在日期选择器中禁用选定日期的日期

PHP
胡子哥哥 2023-03-04 18:01:13
我的 Laravel 应用程序中有一个在线预约表格,其中包含一些归档Select Doctor和datepicker.假设医生A将在周六、周一和周三到诊所。医生B将在周日、周二、周四有空。A因此,当任何患者从现场选择医生时Select Doctor,日历中所有星期六、星期一和星期三的日期都将被激活datepicker,其他日期将被停用。我已经停用了一些选定的datepicker日历日期。但不能禁用datepicker.网页格式<input class="form-control" id="appointment_datepicker" name="appointment_datepicker" type="text" placeholder="Select Date" value="{{ $user->appointment_datepicker or old('appointment_datepicker') }}">阿贾克斯    $.ajax({      url:"{{ url('/filter_available_date') }}",      type: 'GET',      data: {_token :token, branch_id_appointment : branch_id_appointment, doctor_id_appointment : doctor_id_appointment},      success:function(msg){        $('#appointment_datepicker').datepicker('option', 'beforeShowDay', function(date){                var day = jQuery.datepicker.formatDate('yy-mm-dd', date);                return [ msg.indexOf(day) == -1 ] //here msg is the Array of selected Dates which are activated in the datepicker calendar            });                        }});路线Route::get('/filter_available_date','frontendAppointmentController@filter_available_date');控制器public function filter_available_date(Request $request){    $branch_id = $request->branch_id_appointment;    $doctor_id = $request->doctor_id_appointment;        $query =  DB::table('service_doctors');    $query->select('doctor_id','inactive_dates_in_this_month');        if($branch_id != '0')        $query->where('branch_id','=', $branch_id);    if($doctor_id != NULL)        $query->where('doctor_id','=', $doctor_id);    $result_time = $query->get();        $result = [$result_time[0]->inactive_dates_in_this_month];        $final_result= explode(',',$result[0]);        return $final_result;}日历如何解决这个问题?有人帮忙吗?提前致谢。
查看完整描述

2 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

乍一看,这似乎是日期不匹配的问题。如果您使用下面的示例,您可以看到来自 API 的数据应该是什么样子。


var msg = ["2020-05-11"];

$('#appointment_datepicker').datepicker({

  beforeShowDay: function(date) {

    var day = jQuery.datepicker.formatDate('yy-mm-dd', date);

    return [msg.indexOf(day) == -1]

  }

});

<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.0/themes/smoothness/jquery-ui.css" />

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.min.js" integrity="sha256-eGE6blurk5sHj+rmkfsGYeKyZx3M4bG+ZlFyA7Kns7E=" crossorigin="anonymous"></script>

<input class="form-control" id="appointment_datepicker" name="appointment_datepicker" type="text" placeholder="Select Date">


查看完整回答
反对 回复 2023-03-04
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

这里每天都有一个固定号码,例如


Sunday = 0

Monday = 1

Tuesday = 2

Wednesday = 3

Thursday = 4

Friday = 5

Saturday = 6 

所以Array一天的数字(例如:var arr = [1, 2, 3];)从控制器返回,那一天将在datepicker.


只需在 Ajax 中更改以下代码


阿贾克斯


var arr = [1, 2, 3] //these are the array of days numbers return from controller


$('#appointment_datepicker').datepicker('option', 'beforeShowDay', function(date){

            var day = date.getDay();

            return [(arr.indexOf(day) != -1)];

    });

所以只在这里Monday,Tuesday并将Wednesday在日历中激活datepicker。

//img1.sycdn.imooc.com//640317490001e38002970289.jpg

查看完整回答
反对 回复 2023-03-04
  • 2 回答
  • 0 关注
  • 178 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信