Formularze

Formularze umożliwiają użytkownikom wprowadzenie danych, oraz wysłanie ich przez protokół HTTP. Za pomocą języka HTML możemy opisać wygląd pól formularza, natomiast wysłane dane muszą zostać przetworzone przez język skryptowy (np. PHP lub Python).
Formularz musi być otoczony elementem <form></form> (umożliwia to wstawienie do dokumentu kilka formularzy z atrybutami action i method. Jako wartość action podajemy ścieżkę do pliku, który odbierze i przetworzy dane. W atrybucie method możemy wpisać post lub get, pamiętając przy tym, że dane wysłane za pomocą metody get są widoczne w pasku adresu przeglądarki. Metoda ta nie nadaje się więc, jeśli chcemy przesłać hasło, lub długi ciąg znaków.
Jako wartość elementu <form> podajemy pola do wypełnienia, oraz ich opisy.

<form action="formularz.php">
    <!-- tutaj będą pola formularza -->
</form>

Pola tekstowe jednolinijkowe
Pole umożliwiające wprowadzenie wartości tekstowej. Jeżeli w formularzu występuje przycisk wysyłający, lub formularz posiada tylko jedno pole tekstowe jednolinijkowe - naciśnięcie klawisza enter spowoduje wysłanie formularza. Możemy dopisać wartość domyślną pola za pomocą atrybutu value.

<input type="text" value="wpisz wartość..." name="pole_jednolinijkowe">

Pola tekstowe wielolinijkowe
Pole tekstowe wielolinijkowe pozwala na wprowadzenie wielu linii tekstu. Nowe linie możemy wstawiać po kliknięciu na klawisz enter. Wartość domyślną pola wstawiamy jako wartość elementu.

<textarea name="pole_wielolinijkowe">wpisz wartość...</textarea>

Uwaga! W wartości elementu <textarea> mają znaczenie spacje, tabulatory i nowe linie w kodzie źródłowym witryny.

Pola wielokrotnego wyboru
Pola wielokrotnego wyboru pozwalają wybrać użytkownikowi więcej niż jedną spośród wielu opcji. Jeśli chcemy, aby jakieś pole było domyślnie zaznaczone, dopisujemy do niego pusty atrybut checked.

Zaznacz, które języki tworzenia stron są ci znane:
<br><input type="checkbox" name="html" value="Język HTML" checked=""> HTML
<br><input type="checkbox" name="css" value="Język CSS" checked=""> CSS
<br><input type="checkbox" name="php" value="Język PHP"> PHP

Wartość atrybutu name będzie nazwą zmiennej a atrybutu value jej wartością.

Pola jednokrotnego wyboru
Pola jednokrotnego wyboru pozwalają wybrać użytkownikowi tylko jedną spośród wielu opcji. Jeśli chcemy, aby jakieś pole było domyślnie zaznaczone, dopisujemy do niego pusty atrybut checked.

Płeć:
<br><input type="radio" name="plec" value="k" checked=""> kobieta
<br><input type="radio" name="plec" value="m"> mężczyzna

Aby zapobiec zaznaczeniu dwóch tych pól jednocześnie, należy ustawić im identyczną wartość atrybutu name.

Listy rozwijane
Lista rozwijana przypomina w konstrukcji listę numerowaną. Musi być otoczona tagami <select></select>, natomiast każdy punkt listy powinien być otoczony tagami <option></option>. Jeśli chcemy określić domyślną opcję, dopisujemy do niej pusty atrybut selected.

<select name="wojewodztwo">
    <option value="maz">Mazowieckie</option>
    <option value="kuj" selected="">Kujawsko-Pomorkie</option>
    <option value="pod">Podkarpackie</option>
</select>

Pole do wprowadzenia hasła
Pole przeznaczone na wpisanie hasła jest polem jednolinijkowym. Podczas wprowadzania wartości, tekst jest widoczny jako gwiazdki.

<input type="password" name="passphrase">

Przycisk do wysłania formularza
Napis na przycisku podajemy w atrybucie value.

<input type="submit" value="Kliknij by wysłać">

Grupowanie pól formularza
Grupy pól możemy otoczyć tagami <fieldset></fieldset>. Dodatkowo, jeśli w wartości tego elementu zamieścimy element <legend></legend>. jego wartość będzie tytułem grupy. Pola zostaną otoczone ramką.

<fieldset>
    <legend>Dane kontaktowe</legend>
    Telefon: <input type="text" name="phone">
</fieldset>

Etykiety pól
Wszystkie pola formularza mogą posiadać swoją etykietę. Służy do tego element <label></label>. Istnieją dwa sposoby przypisania etykiety do pola.

<label>Imię<input type="text" name="imie"></label>

<!-- w atrybucie for znajduje sie identyfikator pola -->
<label for="imie">Imię</label><input type="text" name="imie" id="imie">

Za pomocą stylów CSS można określić wygląd i położenie etykiet.