2012-04-05 61 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