2012-03-12 13 views
1

感謝,jQuery UI的日期選擇器 - 禁用從數據庫中選擇不從陣列提前爲您的合作

我使用這個jQuery日期選擇器,如圖這一形象在特定的日子: http://techblog.willshouse.com/wp-content/uploads/2009/06/datepicker.jpg

和更多信息: 我有一個ASP.net的網站從SQL Server 2008中檢索數據..管理員功能的 一種是改變例假的日期,他們在數據庫中保存表節假日

我的問題是: 如何在datepicker中禁用這些官方假期,所以我阻止用戶選擇這些特定的日子。下面這個鏈接

jQuery UI Datepicker - Disable specific days

,但我恐怕不能使用此解決方案的方式,因爲例假不能在陣列中列出,因爲他們改變了定期多次由該網站的管理員。

所以,我不需要每次管理員更改它們時將它們添加到數組列表中。

我的意思是,有沒有什麼辦法來禁用從數據庫中的表「假期」選定的日期?

由於提前,

---而且,我嘗試使用這個答案...

/* create an array of days which need to be disabled */ 

    var disabledDays = ["2-21-2010","2-24-2010","2-27-2010","2-28-2010","3-3-2010","3-17-2010","4-2-2010","4-3-2010","4-4-2010","4-5-2010"]; 

    /* utility functions */ 
    function nationalDays(date) { 
      var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(); 
      //console.log('Checking (raw): ' + m + '-' + d + '-' + y); 
      for (i = 0; i < disabledDays.length; i++) { 
          if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1 || new Date() > date) { 
              //console.log('bad: ' + (m+1) + '-' + d + '-' + y + '/' + disabledDays[i]); 
              return [false]; 
          } 
      } 
      //console.log('good: ' + (m+1) + '-' + d + '-' + y); 
      return [true]; 
    } 
    function noWeekendsOrHolidays(date) { 
      var noWeekend = jQuery.datepicker.noWeekends(date); 
      return noWeekend[0] ? nationalDays(date) : noWeekend; 
    } 

    /* create datepicker */ 
    jQuery(document).ready(function() { 
      jQuery('#date').datepicker({ 
          minDate: new Date(2010, 0, 1), 
          maxDate: new Date(2010, 5, 31), 
          dateFormat: 'DD, MM, d, yy', 
          constrainInput: true, 
          beforeShowDay: noWeekendsOrHolidays 
      }); 
+0

請,可以在任何一個急需回答我的問題:| – 2012-03-13 09:36:59

回答

0

這裏是一個被選中禁用特定日期的方式: jQuery - Datepicker - Disable Specific Dates 展望在這個環節的數組,而不是,:

var unavailableDates = ["9-5-2011","14-5-2011","15-5-2011"]; 

你會碰到這樣的:

<?php 
    $result = mysql_query("SELECT `date` FROM `Holidays`;") 
    foreach ($result as $holiday){ 
     //may need to format $holiday here before using 
     $dates .= "'".$holiday."',"; 
    } 
    //remove the last comma 
    $dates = substr($dates,0,-1); 
?> 

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

也許別人可以提供一個ASP.NET解決方案?

0

對於任何人的利益,這裏是我做到了與ColdFusion的

<cfquery name="qHolidays" datasource="#ds#"> 
    SELECT holiday_date 
    FROM public_hols 
    ORDER BY holiday_date 
</cfquery> 


<cfset disabledDays = '"1-1-2000"'> 
<cfloop query="qHolidays"> 
    <cfset disabledDays = disabledDays & ',"' & DateFormat(holiday_date,'d-m-yyyy') & '"'> 
</cfloop> 

<cfoutput> 
    <script type="text/javascript"> 
     /* create an array of days which need to be disabled */ 

     var unavailableDates = [#disabledDays#]; 
     //var unavailableDates = ["9-5-2011","14-5-2011","15-5-2011"]; 

     function unavailable(date) { 
      dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear(); 
      day = date.getDay(); 
      if ($.inArray(dmy, unavailableDates) < 0 && (day > 0) && (day < 7)) { 
       return [true,"","Work Day"]; 
      } else { 
       return [false,"","Public Holiday"]; 
      } 
     } 

     /* 
     $('##iDate').datepicker({ beforeShowDay: unavailable });  
     */ 

     jQuery(document).ready(function() { 
      $(function() { 
       $('##dateentered').datepicker({ 
        changeMonth: true, 
        changeYear: true, 
        dateFormat: 'yy-mm-dd', 
        showOn: "button", 
        buttonImage: "images/calendar.gif", 
        buttonImageOnly: true, 
        numberOfMonths: 3, 
        constrainInput: true, 
        beforeShowDay: unavailable 
       }); 
      }); 
     }); 
    </script> 
</cfoutput> 
相關問題