jQuery UI Datepicker - отключить определенные дни, выбранные из базы данных, а не из массивов - PullRequest
1 голос
/ 12 марта 2012

Заранее спасибо за сотрудничество,

Я использую этот JQUERY Date Picker, как показано на этом изображении: http://techblog.willshouse.com/wp-content/uploads/2009/06/datepicker.jpg

и для получения дополнительной информации: У меня есть ASP.netсайт извлекает данные из SQL Server 2008. Одной из функций администратора является изменение дат официальных праздников и сохранение их в БД в таблице Holidays

. Мой вопрос: как отключить эти официальные праздники в DatePicker, такя запрещаю пользователю выбирать эти конкретные дни.

по этой ссылке:

jQuery UI Datepicker - отключение определенных дней

но я боюсьЯ не могу использовать это решение, потому что официальные праздники не могут быть перечислены в массиве, так как администратор сайта периодически меняет их много раз.

Так что мне не нужно добавлятьих в список массивов каждый раз, когда администратор меняет их.

Я имею в виду, есть ли способ отключить выбранные даты из таблицы "Праздники" в базе данных?

Спасибо в advance,

--- а также я пытаюсь использовать этот ответ ...

    /* 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
            });

Ответы [ 2 ]

0 голосов
/ 23 октября 2013

Для всех, вот как я это сделал с 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>
0 голосов
/ 17 апреля 2012

Вот способ отключить выбор определенных дат: jQuery - Datepicker - отключить определенные даты Глядя на массив в этой ссылке, вместо:

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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...