Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS] Dynamiczny kalendarz na podstawie <select>
Ghoost
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 4.01.2008

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
palin
post
Post #2





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 2.10.2008

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 06:23