Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] Dynamiczny kalendarz na podstawie <select>
Forum PHP.pl > Forum > Po stronie przeglądarki
Ghoost
Utworzyłem prosty kalendarz na podstawie listy rozwijanej:


Kod
<form name="data">
<select name="y">
             <option value="2008">2008</option>
            ...
             <option value="2000">2000</option>
   </select>    
      
   <select name="m">
           <option value="01">Styczeń</option>
           ...
           <option value="12">Grudzień</option>
   </select>
      
   <select name="d">
             <option value="01">01</option>
           ...
           <option value="31">31</option>
     </select>
</form>




Chodzi o to aby przy każdej zmianie roku lub miesiąca (onchange) blokowało odpowiednie dni.


Na początku mamy 2008, Styczeń a więc nic nie blokuje (styczeń ma 31 dni)
Zmieniamy miesiąc na Luty (rok 2008, przestępny), a więc opcje 31,30 są ustawiane na disabled (luty ma w 2008 roku 29 dni)

Możecie pomóc?
palin
proponuje napisać skrypt, który bedzie sprawdzal:
- ktory rok zostal wybrany
- ktory miesiac wybrany

najpierw sprawdzamy czy rok jest przestepny:

Kod
if(rok%4==0) przestepny= 1;
else przestepny=0;


teraz warunki odnosnie miesiecy:
np.
Kod
if(luty.checked && przestepny) { // jesli zaznaczono luty i jest przestepny blokujemy tylko dzien 30 oraz 31
dzien[30]= disabled;
dzien[31]= disabled;
}
if(luty.checked && !przestepny){ // jesli zaznaczono luty, ale nie jest przestepny to musi miec 28dni, wylaczamy 3 ostatnie
dzien[29]= disabled;
   dzien[30]= disabled;
   dzien[31]= disabled;
}

if(kwiecien.checked || czerwiec.checked) dzien[31]= disabled;


tego typu rozwiazanie wymyslilem, nie wiem czy jest najlepsze, bo trzeba napisac troche warunków,
oczywiscie sam musisz dojść do sprawdzenia ktora opcja zostala wybrana - 'dzien[29]= disabled' <-- to tylko przyklad.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.