Jak wykonać formularz zÚtą w postaci pól OPTION,«y nieÚło się wybraćÚty z przeszłości(1)


[PHP] Jak wykonać formularz z datą w postaci pól OPTION, aby nie dało się wybrać daty z przeszłości?

0x01 graphic

Chcesz stworzyć formularz z polami SELECT/OPTION, w których można wybrać rok, miesiąc i dzień, ale nie mogą to być daty z przeszłości.

0x01 graphic

Datę w formularzach podaje się niemal na każdym kroku. Można ją wpisać ręcznie, ale wtedy łatwo o pomyłkę lub zamienienie miesiąca z dniem. Mało tego, zwykle daty zapisywane są w różnych formatach, więc trzeba je dokładnie sprawdzać.

Bardzo łatwo możesz zrobić datę, której nie trzeba wpisywać ręcznie bo wystarczy ją wybrać z menu zawierającego dzień, miesiąc i rok. To jeszcze nic - jeżeli ktoś zechce wybrać datę z przeszłości, nie zrobi tego i otrzyma stosowny komunikat. Nie muszę chyba dodawać, że data sama ustawia się na aktualnym dniu, aby maksymalnie uprościć wypełnianie formularza. Zróbmy taki mechanizm:

<script language="JavaScript" type="text/javascript">

<!--

function sprawdz() {

data=new Date();

m=data.getMonth()+1;

d=data.getDate();

r=data.getFullYear();

dzisiaj=""+r+((m<10)?"0":"")+m+((d<10)?"0":"")+d;

pr=document.f1.rok[document.f1.rok.selectedIndex].value;

pm=document.f1.miesiac[document.f1.miesiac.selectedIndex].value;

pd=document.f1.dzien[document.f1.dzien.selectedIndex].value;

wybrany=""+pr+((pm<10)?"0":"")+pm+((pd<10)?"0":"")+pd;

if (dzisiaj>wybrany) {

alert("Wybrana data z przeszłości!");

document.f1.rok.options[r-document.f1.rok[0].value].selected=true;

document.f1.miesiac.options[m-1].selected=true;

document.f1.dzien.options[d-1].selected=true;

}

}

//-->

</script>

<form name="f1">

Wybierz datÄ™:<br>

<select name="rok" onchange="sprawdz()">

<?

for ($i=2002;$i<=2010;$i++) {

echo "<option value=$i";

if ($i==date("Y")) echo " selected";

echo ">$i</option>";

}

?>

</select>

<select name="miesiac" onchange="sprawdz()">

<?

for ($i=1;$i<=12;$i++) {

echo "<option value=$i";

if ($i==date("m")) echo " selected";

echo ">$i</option>";

}

?>

</select>

<select name="dzien" onchange="sprawdz()">

<?

for ($i=1;$i<=31;$i++) {

echo "<option value=$i";

if ($i==date("d")) echo " selected";

echo ">$i</option>";

}

?>

</select>

</form>

0x01 graphic

PoczÄ…tek formularza

Wybierz datÄ™:
0x01 graphic
0x01 graphic
0x01 graphic

Dół formularza

Generowanie daty to wypisanie w pętli wybranych lat, wszystkich miesięcy i dni w elementach OPTION. Dla aktualnych wartości wybieramy wstępnie pola za pomocą polecenia selected.

Przy każdej zmianie daty następuje wywołanie funkcji sprawdz(), która czuwa aby data nie pochodziła z przeszłości. Funkcja jest prosta - tworzy ciąg składający się z aktualnej daty i z daty ustawionej w formularzu.

Potem dwa ciągi dat są porównane i jeżeli ustawiony jest mniejszy od obecnego, to jest to data zabroniona (z przeszłości). W takim wypadku skrypt znowu ustawia datę dzisiejszą, aby użytkownik mógł dokonać ponownego wyboru.



Wyszukiwarka

Podobne podstrony:
MAMO i babciu, Księga życzeń--zrób sam, instrukcja-jak wykonać
Jak wykonać szyk komponentów po lini śrubowej
HTML & PHP Jak działają formularze , WAP Statystyki przez WAP, czyli jak połączyć PHP z językiem W
jak wykonać raport po sprawdzianie
Jak wykonać decoupage, cooooooooooooos
Jak wykonać masaż antycellulitowy
Jak wykonać kable połączeniowe
Jak wykonać tęczowy makijaż Gucci, Makijaż i pielęgnacja
Jak wykonać wstążkową bombkę
Jak wykonać izolację ścian budowanego domu
Mini poradnik Jak wykonac udane zdjecia wakacyjne
jak wykonac sortowanie przez zamiane wymiane wybor algorytm selection sort, PHP Skrypty
Sprawozdania grafy, Jak wykonac sprawozdanie
145 Jak wykonac prace w dwa razy krotszym czasie, Linux, płyty dvd, inne dvd, 1, Doradca Menedzera
Jak wykonać kapelusz
Jak wykonać różę z bibuły
Jak wykonać obsługę stosu (First In, PHP Skrypty
Jak stworzyć formularz, który zapisze?ne do pliku tekstowego,?y potem jego zawartość dołączyć
jak wykonać bukiet kwiatów z bibuły

więcej podobnych podstron