Każdy formularz rozpoczyna się od znacznika <form>, kończy zaś znacznikiem zamykającym </form>.
Pomiędzy tymi znacznikami znajdują się pola formularza: tekstowe, wyboru, listy, przyciski, itp.
Najważniejszym jest przycisk powodujący wysłanie danych.
<form action="mailto:informatyka@tkk.edu.pl" method="POST">
<!-- pola formularza -->
</form>
<form action="mailto:informatyka@tkk.edu.pl?subject=temat" method="POST">
<!-- pola formularza -->
</form>
<form action="http://localhost/skrypty/skrypt_form.php" method="POST">
<!-- pola formularza -->
</form>
Znacznik <form> powinien posiadać następujące atrybuty:
action="adres" - najważniejszy atrybut, ponieważ ustala adres, na który zostanie wysłany formularz.method="metoda przesyłania danych" - może przyjąć jedną z dwóch wartości: GET lub POST. Wartością domyślną jest GET.enctype="kodowanie danych" - wybierany jest przy przesyłaniu danych metodą POST.multipart/form-data.
Znacznik <INPUT> powinien posiadać następujące atrybuty:
name - określa nazwę danego pola oraz nazwę zmiennej, do której zostaje podstawiona wprowadzona wartość.id - identyfikator pola.
value - określa domyślną wartość pola.
size - określa liczbę znaków pola.
maxlength - maksymalna ilość znaków pola.
type - typ pola.
<input type="text">
tworzy wejściowe pole tekstowe
<form>
Imię:<br>
<input type="text" name="imie"><br>
Nazwisko:<br>
<input type="text" name="nazwisko">
</form>
efekt:
Imię:<input type="password">
tworzy pole hasła - wprowadzane znaki zastępowane są gwiazdkami
<form>
Użytkownik:<br>
<input type="text" name="uzytkownik"><br>
Hasło:<br>
<input type="text" name="haslo">
</form>
efekt:
Użytkownik:<input type="button">
Tworzy przycisk domyślnie nie wywołuje żadnej akcji - musi być odpowiednio zaprogramowany.
<input type="button" value="przycisk">
efekt:
<input type="submit">
Tworzy przycisk wysyłający dane z pól formularza.
Dane przesyłane są do skryptu określonego w atrybucie formularza action.
<form method="POST"> Imię: <input type="text" name="imie" value="Bazyli"> Nazwisko: <input type="text" name="nazwisko" value="Frotaś"> <input type="submit" value="wyślij"> </form>
efekt:
Przy pominięciu atrybutu value zostanie wyświetlony na przycisku napis domyślny.
<input type="reset">
kasuje zawartość pól formularza
<form action="/action_page.php">
Imię:<br>
<input type="text"
name="firstname" value="Frotaś"><br>
Nazwisko:<br>
<input
type="text" name="lastname" value="Bazyli"><br><br>
<input type="submit"
value="Submit">
<input type="reset">
</form>
efekt:
Po naciśnięciu przycisku Reset wartości zostaną przywrócone do domyślnych.
<input type="checkbox">
tworzy pola wyboru wielokrotnego
<form>
<input type="checkbox" name="vehicle[]" value="Bike"> mam rower<br>
<input type="checkbox" name="vehicle[]" value="Car"> mam samochód
</form>
efekt:
<input type="radio">
tworzy pola jednokrotnego wyboru
<form>
<input type="radio" name="kolor" value="czerwony"
checked> czerwony<br>
<input
type="radio" name="kolor" value="zielony"> zielony<br>
<input
type="radio" name="kolor" value="niebieski"> niebieski
</form>
efekt:
<input type="file">
Umożliwia wysyłanie plików na serwer.
Atrybut formularza enctype musi mieć mieć ustawioną wartość: multipart/form-data enctype="multipart/form-data"
oraz method="POST"
<input type="file">
efekt:
<input type="hidden">
Tworzy pole ukryte, umożliwiające przesyłanie danych niewidocznych dla użytkownika.
<input type="hidden" name="data" value="2019-10-15">
efekt:
<input type="color"><input type="date"><input type="datetime-local"><input type="email"><input type="image"><input type="month"><input type="number"><input type="range"><input type="search"><input type="tel"><input type="time"><input type="url"><input type="week">
Tworzy przycisk formularza. Ma podobne znaczenie jak znacznik <input>, które dla atrybuty type
przyjmują wartości: button, submit lub reset
<button type="submit" name="przycisk1">wyślij</button>
<button type="reset" name="przycisk2">usuń</button>
<button type="button" name="przycisk3">anuluj</button>
efekt:
Tworzy listę rozwijalną i zachęca do wybrania jednej lub kilku z nich.
<select name="cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
efekt:
<select> można używać atrybutów:size="n" - określa liczbę pozycji widocznych w polu select
multiple - można wybrać więcej niż jedną pozycję
<select name="cars" size="4">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
efekt:
<select name="cars" size="4" multiple>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
efekt:
Zaznaczając przytrzymaj klawisz Ctrl<option> można używać atrybutów:selected - zaznaczenie dla wybranej pozycji
value="wartość" - określa wartość danej pozycji przekazywaną przez wysyłany formularz
<select name="cars[]" size="4" multiple>
<option value="volvo" selected>Volvo</option>
<option value="saab">Saab</option>
<option value="fiat" selected>Fiat</option>
<option value="audi">Audi</option>
</select>
efekt:
<optgroup> z atrybutem: label="tytuł grupy"
<h4>formularz wyboru języka:</h4>
<select name="jezyki" size="10" multiple>
<optgroup label="języki słowiańskie">
<option value="polski" selected>polski</option>
<option value="rosyjski">rosyjski</option>
<option value="czeski">czeski</option>
</optgroup>
<optgroup label="języki germańskie">
<option value="angielski" selected>angielski</option>
<option value="niemiecki">niemiecki</option>
</optgroup>
<optgroup label="języki romańskie">
<option value="francuski">francuski</option>
<option value="wloski" selected>włoski</option>
<option value="hiszpanski" selected>hiszpański</option>
</optgroup>
</select>
efekt:
Tworzy pole tekstowe, w który można wprowadzić wiele linii tekstu.
<textarea name="opis" rows="10" cols="30">
Tu może być
wiele
linii
tekstu.
</textarea>
efekt:
Służy jako element autouzupełniania wartości wprowadzonych w znaczniku <input>.
Znacznik <datalist> musi być poprzedzony znacznikiem <input>.
wpisz język: <input list="jezyki">
<datalist id="jezyki">
<option value="francuski"></option>
<option value="fiński"></option>
<option value="włoski"></option>
<option value="węgierski"></option>
<option value="hiszpański"></option>
</datalist>
efekt:
autofocus
<input type="text" name="adres" autofocus>
autocomplete
on lub off.
Przeglądarki często uzupełniaja dane w polu.<input type="text" name="adres" autocomplete="off">required
<input type="text" name="adres" required>
pattern
<input type="text" name="kod" pattern="[0-9]{2}-[0-9]{3}">placeholder
<input type="text" name="nazwa" placeholder="nazwa użytkownika">
efekt: