Javascript 日历在传递PHP变量后保留所选日期

Javascript 日历在传递PHP变量后保留所选日期,javascript,php,Javascript,Php,我使用了下面的日历代码,并做了一些小的修改,不管怎样,当我选择一个日期时,日历会突出显示所选的日期,这很好。但是当我传递这个选定的日期并重定向url时,日历会松开所选的日期,并且不再在下一页突出显示,因为我已经传递了变量,如何编辑日历代码并将其传回所选变量,以便在下一页(同一日历)的日历上知道并突出显示所选日期 g_globalObject=new JsDatePick({ 使用模式:1, 伊莎贝拉:没错, 目标:“div3_示例” }); g_globalObject.setOnSe

我使用了下面的日历代码,并做了一些小的修改,不管怎样,当我选择一个日期时,日历会突出显示所选的日期,这很好。但是当我传递这个选定的日期并重定向url时,日历会松开所选的日期,并且不再在下一页突出显示,因为我已经传递了变量,如何编辑日历代码并将其传回所选变量,以便在下一页(同一日历)的日历上知道并突出显示所选日期

g_globalObject=new JsDatePick({
使用模式:1,
伊莎贝拉:没错,
目标:“div3_示例”
});     
g_globalObject.setOnSelectedDelegate(函数(){
var obj=g_globalObject.getSelectedDay();
if(对象月toString().长度<2){
风险值日期=目标年+“-0”+目标月+“-”+目标日
//警报(日期);
window.top.location.href='…index.php?pDate='+日期;
}否则
{
var日期=目标年+“-”+目标月+“-”+目标日
//警报(日期);
window.top.location.href='…index.php?pDate='+日期;
}
});
有一个名为
selectedDate
的配置选项,可用于预先选择日期。我们可以解析查询字符串并在初始化时提供该选项

遗憾的是,
selectedDate
是有缺陷的,在使用时会完全禁用日期选择器。用户引用(德语)的答案中有一个补丁,需要修改源。但我们可以使用一些包装材料,而不是这样做:

// duplicate original function
JsDatePick.prototype.setConfiguration_original = JsDatePick.prototype.setConfiguration;

// redefine function
JsDatePick.prototype.setConfiguration = function() {

    // call original function
    JsDatePick.prototype.setConfiguration_original.apply(this, arguments);

    // use "selectedDate"
    if(this.oConfiguration.selectedDate){
        this.currentYear          = this.oCurrentDay.year;
        this.currentMonth         = this.oCurrentDay.month;
        this.currentDay           = this.oCurrentDay.day;
        this.selectedDayObject    = this.oConfiguration.selectedDate;
        this.flag_aDayWasSelected = true;
    }
}

// parse query string for selected date
var pDate = location.search.match(/[\?&]pDate=(\d+)-(\d+)-(\d+)/);
pDate = pDate
    ? {year:parseInt(pDate[1]), month:parseInt(pDate[2]), day:parseInt(pDate[3])}
    : null;

var g_globalObject = new JsDatePick({
    useMode:1,
    isStripped:true,
    selectedDate: pDate,
    target:"div3_example",
});
// duplicate original function
JsDatePick.prototype.setConfiguration_original = JsDatePick.prototype.setConfiguration;

// redefine function
JsDatePick.prototype.setConfiguration = function() {

    // call original function
    JsDatePick.prototype.setConfiguration_original.apply(this, arguments);

    // use "selectedDate"
    if(this.oConfiguration.selectedDate){
        this.currentYear          = this.oCurrentDay.year;
        this.currentMonth         = this.oCurrentDay.month;
        this.currentDay           = this.oCurrentDay.day;
        this.selectedDayObject    = this.oConfiguration.selectedDate;
        this.flag_aDayWasSelected = true;
    }
}

// parse query string for selected date
var pDate = location.search.match(/[\?&]pDate=(\d+)-(\d+)-(\d+)/);
pDate = pDate
    ? {year:parseInt(pDate[1]), month:parseInt(pDate[2]), day:parseInt(pDate[3])}
    : null;

var g_globalObject = new JsDatePick({
    useMode:1,
    isStripped:true,
    selectedDate: pDate,
    target:"div3_example",
});