Walidacja pól formularza przy użyciu języka PHP.
W drugiej części walidacji formularza przy użyciu języka PHP sprawdzimy poprawność pozostałych typów pól formularza (których nie użyliśmy w pierwszej części posta) tzn. pola typu checkbox, listy wyboru select oraz pola tekstowego textarea.
Naszym celem jest tak wyglądający formularz:
Wyświetlający wprowadzone dane po sprawdzeniu ich poprawności (walidacji):
Zaczynamy od stworzenia struktury formularza w języku HTML:
<form method=”post” action=”skryptwalidacja.php”>
Czy cieszysz się z nadchodzących wakacji?
<br>
<br>
<input type=”checkbox” name=”yes”> Tak </input>
<input type=”checkbox” name=”no”> Nie </input>
<br>
<br>
Wybierz swój ulubiony sport:
<select name=”sport”>
<option value=””> </option>
<option value=”football”> Piłka Nożna </option>
<option value=”basketball”> Koszykówka </option>
<option value=”volleyball”> Siatkówka </option>
</select>
<br>
<br>
Gdzie jedziesz na wakacje?
<br>
<br>
<textarea size=”20″ name=”wakacje”> </textarea>
<br>
<br>
<input type=”submit” value=”Wyślij”> </input>
</form>
Wewnątrz znaczników <form> </form> tworzymy całą strukturę formularza dodając przy każdym z rodzajów pól atrybut name potrzebny przy walidacji, natomiast przy znaczniku form dodajemy method tzn. określamy metodę przesyłania danych oraz action określamy jaki skrypt php będzie sterował formularzem po wprowadzeniu danych i naciśnięciu pola typu submit.
Przechodzimy do pliku .php:
Przed rozpoczęciem pracy z php pamiętamy o uruchomieniu pakietu xampp oraz umieszczeniu plików w folderze htdocs znajdującym się w folderze xampp domyślnie na dysku C.
Wewnątrz znaczników <?php ?> wprowadzamy kod:
if(isset($_POST[‘yes’]) == false && isset($_POST[‘no’]) == false)
{
echo “Zaznacz odpowiedz na pytanie! <br/>”;
}
if(isset($_POST[‘yes’]) && isset($_POST[‘no’]))
{
echo “Wybierz tylko jedna odpowiedz na pytanie! <br/>”;
}
if(isset($_POST[‘yes’]))
{
echo “Czy cieszysz sie z nadchodzacych wakacji? Tak <br/>”;
}
if(isset($_POST[‘no’]))
{
echo “Czy cieszysz sie z nadchodzacych wakacji? Nie <br/>”;
}
Zaczynamy od walidacji pól typu checkbox. Jeżeli nie zostanie zaznaczona ani jedna odpowiedź isset == false zostanie wyświetlony komunikat, przy zaznaczeniu obydwu odpowiedzi także dostaniemy wiadomość, a przy zaznaczeniu jednej wybranej odpowiedzi zostanie ona wyświetlona.
switch($_POST[‘sport’])
{
case “”:
echo “Wybierz ulubiony sport! <br/>”;
break;
case “football”:
echo “Ulubiony sport: Pilka nozna <br/>”;
break;
case “basketball”:
echo “Ulubiony sport: Koszykowka <br/>”;
break;
case “volleyball”:
echo “Ulubiony sport: Siatkowka <br/>”;
break;
default:
echo “”;
}
Przy walidacji listy select posłużymy się instrukcją switch case. Sprawdzamy wartość dla listy, case np. football (value przy option na liście w HTML) tzn. przy wartości football zostanie wypisany Ulubiony sport Piłka nożna itd.
if(strlen($_POST[‘wakacje’]) < 2 )
{
echo “Napisz gdzie jedziesz na wakacje!”;
}
else
{
echo “Gdzie jedziesz na wakacje?”.$_POST[‘wakacje’];
}
Na koniec walidacja pola tekstowego textarea. Jeżeli długość wpisanego tekstu w polu strlen jest mniejsze od 2 (mniejsze od 2 dlatego, że domyślnie pole tekstowego ma już 1 znak – znak początku nowej lini) dostaniemy komunikat, w przeciwnym razie zostaną wypisane wprowadzone dane.
Efektem końcowym jest formularz z walidacją:
Pliki do pobrania: PHP2