在页面上的JQuery多个日历中显示来自数据库的自定义选定日期

时间:2019-05-27 13:42:55

标签: jquery calendar

我正在使用一个登录系统,用户可以在该系统上注册带有附加日历的多个产品。整个网站都可以处理ajax响应。

问题是,当用户第一次选择上载的产品并查看日历时,先前保存的日期显示为选中状态。但是之后不管他切换到多少产品,它都会在日历上继续显示相同的日期数据。

下面是我的代码:

jQuery(document).ready(function ($) {

// Click Function On Calendar Tab
$("#tabCalendar").click(function(){
    var productId = $("#productId").val();
    $.ajax({
        type:'POST',
        url:'../ajax/listing_availabily_dates_fetch.php',
        data: "&productId=" + productId,
        datatype: 'json',
        success:function(response){
            startTheCalendar(response);
        }
    });
});

function startTheCalendar(response){
    $("#show-next-month").calendar({
        num_next_month: 11,
        num_prev_month: 0,
        unavailable: response, // This is where dates should update
        onSelectDate: function(date, month, year, thisEvent){
            var dateData = [year, month, date].join('-');
            selected = response;
            dateClickEvent(dateData, thisEvent);
        }
    });
}

// function dateClickEvent(dateData, thisEvent) {}


});

寻求帮助。

1 个答案:

答案 0 :(得分:0)

我正在寻找错误方向的解决方案,或者可能更复杂。我认为如果可以刷新插件数据会更容易,为此我什至开始在插件本身中创建自定义函数。

令我惊讶的是,在没有任何帮助的情况下,这相当容易:

HTML:

<div id="calendar-holder">
    <div id="calendar" ></div>
</div>

jQuery:

function startTheCalendar(response){

    $("#calendar-holder").html("");
    $("#calendar-holder").html('<div id="calendar" ></div>');

    if(response == ""){ response = []; }

    $("#show-next-month").calendar({
        num_next_month: 11,
        num_prev_month: 0,
        unavailable: response, // This is where dates should update
        onSelectDate: function(date, month, year, thisEvent){
            var dateData = [year, month, date].join('-');
            selected = response;
            dateClickEvent(dateData, thisEvent);
        }
    });
}

我只需要从HTML清除插件数据并重新填充。