Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
[JQuery] Datepicker - odblokowanie dni - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: xHTML, CSS, JavaScript (https://www.webmastertalk.pl/forum-xhtml-css-javascript)
+--- Wątek: [JQuery] Datepicker - odblokowanie dni (/thread-jquery-datepicker-odblokowanie-dni)



[JQuery] Datepicker - odblokowanie dni - Stef@n - 22-05-2012

Witam, mam pewnie problem z kalendarzem JQuery UI(Datepicker). Potrzebuje wykonać kalendarz w taki sposób aby:
1) Aby w całym przedziale czasowym np. 2 lata można było wybierać tylko wybrane dni z tygodnia np. tylko poniedziałki i środy.
Ten element wykonałem tak i DZIAŁA:
Kod:
$(document).ready(function() {
    $("#DataOd").datepicker({
        minDate: 0,
        maxDate: "+1Y",
        numberOfMonths: 2,
        beforeShowDay:  function (date) {
            
            /* Blokowanie dni tygodnia */
            var dni_tygodna = ["1", "3"]; //wybrane dni tygodnia do odblokowania
            var dtDate = date.getDay().toString();
            if ($.inArray(dtDate, dni_tygodna) == -1) return [false,"","Nie można rezerwować w ten dzień!"];
            else return [true, ""];                
            
        }
    });
});

2) Do tego kalendarza potrzebuje zrobić wyjątek np. w przedziale czasowym od 7 lipca 2012 do 30 lipca 2012 mają wyłączyć się dni tygodnia z Punktu 1 (wyżej napisany), a mają odblokować się dni wybrane:
Wybrane dni wybieram tak i DZIAŁAJĄ:
Kod:
$(document).ready(function() {
    $("#DataOd").datepicker({
        minDate: 0,
        maxDate: "+1Y",
        numberOfMonths: 2,
        beforeShowDay:  function (date) {
            
            /* Dodatkowe odblokowanie w przedziałach czasowych */
            var aktywne_dni = ["7-11-2012", "7-22-2012", "7-27-2012"]; //WYbrany dni do doblokowania
            var mm = date.getMonth() + 1, dd = date.getDate(), yy = date.getFullYear();
            var adDate = mm + "-" + dd + "-" + yy;
            var adfDate = adDate.toString();
            
            if ($.inArray(adfDate, aktywne_dni) == -1) return [false,"","Nie można rezerwować w ten dzień!"];
            else return [true, ""];                    
            
        }
    });
});

Pierwszy problem polega na tym, że nawet jeśli spróbuje połączyć oba ustawienia z punktu 1 i 2 to działa tylko jedna z opcji. Oto przykład kodu, który próbowałem połączyć:
Kod:
$(document).ready(function() {
    $("#DataOd").datepicker({
        minDate: 0,
        maxDate: "+1Y",
        numberOfMonths: 2,
        beforeShowDay:  function (date) {
            
            /* Blokowanie dni tygodnia */
            var dni_tygodna = ["1", "3"]; //wybrane dni tygodnia do odblokowania
            var dtDate = date.getDay().toString();
            if ($.inArray(dtDate, dni_tygodna) == -1) return [false,"","Nie można rezerwować w ten dzień!"];
            else return [true, ""];
            
            /* Dodatkowe odblokowanie w przedziałach czasowych */
            var aktywne_dni = ["7-11-2012", "7-22-2012", "7-27-2012"]; //WYbrany dni do doblokowania
            var mm = date.getMonth() + 1, dd = date.getDate(), yy = date.getFullYear();
            var adDate = mm + "-" + dd + "-" + yy;
            var adfDate = adDate.toString();
            
            if ($.inArray(adfDate, aktywne_dni) == -1) return [false,"","Nie można rezerwować w ten dzień!"];
            else return [true, ""];                    
            
        }
    });
});
Przy powyższym kodzie wyświetlają się tylko wybrane dni tygodnia jak w ustawieniu 1, natomiast blokada pojedynczych dni nie zadziałała. Jak to połączyć i zrobić przedział z punktu ustawień 2, aby w przedziale wyświetlały się daty wybrane a poza przedziałem tylko dni tygodnia z pierwszego punktu.

Bardzo proszę o pomoc. Pozdrawiam[/code][/b]