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: