Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择ajax加载的日期和特殊日期,以在gldatepicker中设置_Javascript_Jquery - Fatal编程技术网

Javascript 选择ajax加载的日期和特殊日期,以在gldatepicker中设置

Javascript 选择ajax加载的日期和特殊日期,以在gldatepicker中设置,javascript,jquery,Javascript,Jquery,我正在使用gldatepicker。我想通过ajax从数据库中加载gldatepicker的一些设置,如星期几、特殊日期等。现在我有以下js代码: $(document).ready(function () { loadAllSettings(); }); var loadAllSettings = function () { startDate = ''; endDate = ''; selectDay = ''; offdays = '';

我正在使用gldatepicker。我想通过ajax从数据库中加载gldatepicker的一些设置,如星期几、特殊日期等。现在我有以下js代码:

$(document).ready(function () {
    loadAllSettings();
});
var loadAllSettings = function () {
    startDate = '';
    endDate = '';
    selectDay = '';
    offdays = '';

    $.ajax({
        url: "bs_client_function.php",
        type: "post",
        dataType: "json",
        data: {
            action: 'getDateRange'
        },
        success: function (html) {
            // alert(html.start);
            startDate = Date.parse(html.start);
            endDate = Date.parse(html.end);
        }

    });
    $.ajax({
        url: "bs_client_function.php",
        type: "post",
        dataType: "json",
        data: {
            action: 'getOffdays'
        },
        success: function (html) {
            i = 0;
            offdays = '[';
            while (i < html.length) {
                offdays = offdays + {
                    date: new Date(html[i]),
                    repeatYear: false,
                    cssClass: 'noday'
                };
                i = i + 1;
            }
            offdays = offdays + ']';
        }

    });
    $.ajax({
        url: "bs_client_function.php",
        type: "post",
        data: {
            action: 'getDays'
        },
        success: function (html) {
            var data = $.parseJSON(html);
            // alert("[" + data + "]");
            selectDay = '[' + data + ']';
            // alert(selectDay);
           showCalender(startDate, endDate, selectDay, offdays);
        }

    });
    alert(selectDay);
    console.log('selectDay' + selectDay);

};
现在只有stardate和enddate正常工作。选择Day,offdays不工作。我在控制台中打印selectDay,我得到了这个:[1,2,3],但它不工作。我缺少什么,或者应该用什么正确的方法来做。
提前感谢…

问题在于如何获取填充GLDATECIPKER的数据。 您有3个ajax调用,这些调用在默认情况下是异步的,您在最后一个成功函数中执行ShowCalendar函数,但是您无法确定前面的调用是否已完成

通过将async参数设置为false,可以使ajax调用同步。请参见jQuery:

async default:true Type:Boolean默认情况下,发送所有请求 异步,即默认情况下设置为true。如果你需要 同步请求,将此选项设置为false。跨域请求 和数据类型:jsonp请求不支持同步操作。 请注意,同步请求可能会暂时锁定浏览器, 在请求处于活动状态时禁用任何操作。从jQuery 1.8开始, 不推荐将async:false与jqXHR$一起使用;你 必须使用成功/错误/完成回调选项,而不是 jqXHR对象的相应方法,如jqXHR.done或 不推荐使用jqXHR.success

或者你可以在每次成功的回调中链接它们,但是你的代码将很难维护,或者你可以使用这个插件来管理多个ajax调用

它适用于本地数据,请参见:

仅注意specialDates选项需要的对象:

   specialDates: [{
       date: new Date(0, 8, 5),
       data: {
           message: 'Happy Birthday!'
       },
       repeatYear: true,
       cssClass: 'special-bday'
   }, {
       date: new Date(2013, 0, 8),
       data: {
           message: 'Meeting every day 8 of the month'
       },
       repeatMonth: true
   }]

在你的终端上做一点点额外的工作,你就可以创建一个加载你的代码和你正在使用的库的提琴。然后,那些不熟悉gldatepicker库的人可能会有所帮助,但我注意到,您有一个同步代码,它依赖于一个AJAX异步代码首先完成。您应该使用承诺模型或回调模型,并根据异步方法完成对showCalendar的调用谢谢–gillyspy的快速回复。请给我一些参考指南以使其工作??嗨,gillyspy,我已经编辑了我的问题。现在我给ajax success内部的showcalender打电话。它也不起作用。嗨,Edward,谢谢你的回复。我需要检查一下。如果它起作用,我会标记你的答案。再次感谢。关于特殊日期,我需要运行一个循环。它不是静态的。我看到了你的小提琴代码。在我的代码中,本地数据工作正常。格式化方面有问题吗我从ajax中获取的所有数据???没有问题,您必须只在本地设置或从ajax调用返回格式为specialDates的array ob对象。请参见:我应该如何返回array对象??您能给我一个示例吗?您现在如何从ajax调用getOffdays返回您的offdays变量?
   specialDates: [{
       date: new Date(0, 8, 5),
       data: {
           message: 'Happy Birthday!'
       },
       repeatYear: true,
       cssClass: 'special-bday'
   }, {
       date: new Date(2013, 0, 8),
       data: {
           message: 'Meeting every day 8 of the month'
       },
       repeatMonth: true
   }]