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

Php 在日期选择器中禁用选定日期的日期,php,jquery,laravel,laravel-5,datepicker,Php,Jquery,Laravel,Laravel 5,Datepicker,我在我的Laravel申请表中有一张在线预约表,上面有一些精选医生和日期选择器 假设A医生周六、周一和周三都在诊所。B医生周日、周二、周四有空。因此,当任何患者从“选择医生”字段中选择医生A时,日期选择器日历中的所有星期六、星期一和星期三日期将被激活,其他日期将被停用 我已经停用了datepicker日历的某些选定日期。但无法在datepicker中禁用所选日期的日期 html 路线 控制器 历法 如何解决这个问题?有人帮忙吗?提前感谢。从第一眼看,似乎是日期不匹配的问题。如果使用下面的示例,

我在我的Laravel申请表中有一张在线预约表,上面有一些精选医生和日期选择器

假设A医生周六、周一和周三都在诊所。B医生周日、周二、周四有空。因此,当任何患者从“选择医生”字段中选择医生A时,日期选择器日历中的所有星期六、星期一和星期三日期将被激活,其他日期将被停用

我已经停用了datepicker日历的某些选定日期。但无法在datepicker中禁用所选日期的日期

html

路线

控制器

历法


如何解决这个问题?有人帮忙吗?提前感谢。

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

var msg=[2020-05-11]; $“约会\日期选择器”。日期选择器{ beforeShowDay:functiondate{ var day=jQuery.datepicker.formatDate'yy-mm-dd',date; 返回[msg.indexOfday==-1] } };
这里每天都有一个固定的数字,比如

Sunday = 0
Monday = 1
Tuesday = 2
Wednesday = 3
Thursday = 4
Friday = 5
Saturday = 6 
所以一个日数数组:var arr=[1,2,3];从控制器返回,这些日期将在日期选择器中处于活动状态

只需在Ajax中更改以下代码

阿贾克斯

因此,这里只有星期一、星期二和星期三在日期选择器日历中处于活动状态


是jquery datepicker吗?@EhsanMahmud…是的,你能提供API响应吗?@EhsanMahmud…我是新来的。请告诉我查找API响应的过程好吗?……我可以成功停用数组中的特定日期……但无法停用特定日期。希望您理解我的问题。我已经用API responseSo更新了我的帖子,病人选择了医生,日历也改变了,这就是你想要做的吗?不!!。。。。从“管理”面板中,我为每位医生选择了“休息日”……患者将在日历中看到所选医生的“休息日”为“停用”……因此,我想知道,如何将这些“休息日”转换为“日期选择器日历”中的“停用日期”……嗯,老实说,你的问题并没有真正反映出你在帖子中介绍的内容。看起来你只是不能禁用日期。这听起来更像是一项任务。你能指出你在哪里发送休息日的控制器,以及它在ajax调用中的接收方式吗?我已经用控制器和路由更新了我的帖子。请看一下,现在我明白你想要什么了。你在帖子上写的,意味着你已经有了来自数据库表的日期,你实际上想要过滤的是天数,而不是日期。这就是为什么需要查看api响应的原因:。
    $.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;
}
Sunday = 0
Monday = 1
Tuesday = 2
Wednesday = 3
Thursday = 4
Friday = 5
Saturday = 6 
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)];
    });