2012-04-05 58 views
1

我正在使用jquery datepicker为我的应用程序。刷新datepicker后selectse

我想突出显示用户选择的日期。 用户将选择一个日期,并将该日期作为假日添加到数据库中,并且日期应该高亮显示。我已经在使用beforeShowDay事件之前会突出显示数据库中的某些日期,并且我还禁用了周末。

一切工作正常,但我无法在将它添加到数据库后突出显示该日期。只有当我重新加载日历时才会突出显示。

我在互联网上搜索,但没有得到任何明确的想法,许多地方建议使用multidatepicker,但重点是在我只选择一个日期添加到数据库,然后选择其他。

请建议我在哪里出错。 我的代码is--

var dates = [ <? php echo $holidays; ?> ]; 

$(document).ready(function() { 
    $("#calendardisplay").datepicker({ 
     dateFormat: 'yy-mm-dd', 
     beforeShowDay: highlightDays, 
     onSelect: dateSelected 
    }); 

    function dateSelected(dateText, inst) { 
     $.post('/postChannelHoliday.php', { 
      'date': dateText 
     }, function (data) { 
      alert('Successfully Added'); 
     }); 
    } 
} 

function holiday(date) { 
    for (var i = 0; i < dates.length; i++) { 
     if (new Date(dates[i]).toString().substr(0, 16) == date.toString().substr(0, 16)) { 
      return [true, 'ui-state-highlight']; 
     } 
    } 
    return [true, '']; 
} 

function highlightDays(date) { 
    var noWeekend = $.datepicker.noWeekends(date); 
    if (noWeekend[0]) { 
     return holiday(date); 
    } else { 
     return noWeekend; 
    } 
} 
}); 

我包括一个PHP文件来获得存储在数据库中的日期来突出他们在日历相反

+0

你的缩进确实很可怕。 – ThiefMaster 2012-04-05 08:51:39

+0

'var dates = [<? php echo $ holidays; ?>];'看起来非常糟糕。你有没有听说过'json_encode()'?你可以简单地使用'var dates = <?php echo json_encode($ holidayArray); ?>;并且它始终是有效的JavaScript - 无论数组包含什么。 – ThiefMaster 2012-04-05 08:53:00

+0

@ThiefMaster - 但你能告诉我如何突出显示用户在数据库中添加的日期而无需刷新,或者需要刷新我的代码 – Priyanka 2012-04-05 09:03:21

回答

0

alert你需要更新你的假期表(看起来像dates global object),并强制更新日期选取器,方法是调用refresh