根据php结果禁用DatePicker中的特定日期

问题描述

我正在尝试使用PHP禁用基于mySQL查询的已选择日期 我在javascript变量(var disabledDate)中得到了PHP结果。 这是我的代码

    $(function () { 
      $('#school').change(function(){ // this is dropdown
          var dis_date;
            var id = $(this).val();
            var dis_date;
        $.ajax({
            type: "GET",url: "details.PHP",data: "pass_id="+id,success: success
        });
     function success(data) //data received here is ["2020/12/20","2020/12/19"]
    {   
        var disabledDate = data.trim();
        alert(disabledDate);
            jQuery(function() 
            {       
                var date = new Date();
                var currentMonth = date.getMonth();
                var currentDate = date.getDate();
                var currentYear = date.getFullYear();

            $('#calender').datepicker
            ({
                beforeShowDay:before,dateFormat: 'yy-mm-dd',minDate: new Date(currentYear,11,1),disabledDates: disabledDate,maxDate: new Date(currentYear,12,31)
            });
        });
         var before=   function(dt)
         {
            return [dt.getDay() === 0 || dt.getDay() === 6,""];
         }
    }
     });
    });

无法禁用datepicker中的日期。任何帮助!!!

解决方法

做这样的事情。

将要从数据库中获取的日期放入数组中。

var array = ["2020/12/20","2020/12/19"]

然后像这样编码。

$('#calender').datepicker({
    beforeShowDay: function(date){
        var string = jQuery.datepicker.formatDate('yy-mm-dd',date);
        return [ array.indexOf(string) == -1 ]
    }
});

查看演示here