Kurs HTML

Lekcja 8.1: Wprowadzenie do formularzy (<form>)

Strona główna > Rozdział 8: Formularze > Wprowadzenie do formularzy (<form>)

Czym są formularze HTML?

Formularze HTML są jednym z najważniejszych elementów interaktywnych na stronach internetowych. Pozwalają użytkownikom wprowadzać dane, które następnie mogą być wysłane na serwer w celu przetworzenia. Przykłady zastosowań formularzy to:

Podstawowym znacznikiem służącym do tworzenia formularzy jest <form>.

Znacznik <form>

Znacznik <form> działa jak kontener dla różnych elementów kontrolnych formularza, takich jak pola tekstowe, przyciski opcji, pola wyboru, listy rozwijane i przyciski wysyłania. Sam znacznik <form> nie jest widoczny na stronie, ale definiuje, jak i gdzie dane z formularza mają zostać wysłane.

Najważniejsze atrybuty znacznika <form> to:

Prosty przykład znacznika <form>:

<form action="/przetwarzanie-danych" method="POST">
  <!-- Tutaj znajdą się elementy formularza (np. pola input, przyciski) -->
  
  <p>To jest prosty formularz.</p>
  
  <!-- Przycisk do wysłania formularza -->
  <button type="submit">Wyślij</button>
</form>

W tym przykładzie:

Elementy formularza

Wewnątrz znacznika <form> umieszcza się różne elementy kontrolne, które pozwalają użytkownikowi wprowadzać dane. Najważniejsze z nich to:

Szczegółowo omówimy te elementy w kolejnych lekcjach tego rozdziału.

Przycisk wysyłania (`type="submit"`)

Aby użytkownik mógł wysłać wypełniony formularz, potrzebny jest przycisk typu submit. Można go stworzyć na dwa sposoby:

  1. <input type="submit" value="Wyślij">
  2. <button type="submit">Wyślij</button>

Oba sposoby działają tak samo - kliknięcie takiego przycisku powoduje wysłanie danych formularza na adres podany w atrybucie action za pomocą metody określonej w atrybucie method. Użycie znacznika <button> jest często preferowane, ponieważ pozwala na umieszczenie wewnątrz przycisku bardziej złożonej zawartości (np. tekstu i ikon).

Zadanie praktyczne (z rozwiązaniem)

Zadanie: Stwórz szkielet formularza kontaktowego. Formularz ma wysyłać dane metodą POST na adres /wyslij-wiadomosc. Na razie umieść w nim tylko tekst informacyjny "Formularz kontaktowy" i przycisk "Wyślij wiadomość" typu submit.

Rozwiązanie:

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <title>Formularz Kontaktowy - Szkielet</title>
</head>
<body>
    <h1>Kontakt</h1>
    
    <form action="/wyslij-wiadomosc" method="POST">
        <p>Formularz kontaktowy</p>
        
        <!-- W przyszłości dodamy tu pola na imię, email, wiadomość -->
        
        <button type="submit">Wyślij wiadomość</button>
    </form>

</body>
</html>

Dodatkowe zadania do samodzielnego wykonania:

  1. Stwórz formularz wyszukiwania, który wysyła dane metodą GET na adres /szukaj. Dodaj przycisk "Szukaj".
  2. Zmień metodę w formularzu kontaktowym na GET i zaobserwuj (w narzędziach deweloperskich przeglądarki lub jeśli masz działający serwer), jak dane (których na razie nie ma) byłyby przesyłane.
  3. Stwórz formularz bez podanego atrybutu method. Jaka metoda zostanie użyta domyślnie? (Odpowiedź: GET).

Najczęściej zadawane pytania

Do czego służy znacznik <form>?

Znacznik <form> jest kontenerem dla elementów formularza (pól tekstowych, przycisków itp.). Definiuje on, gdzie (atrybut action) i jak (atrybut method) dane wprowadzone przez użytkownika mają zostać wysłane.

Co określa atrybut action w formularzu?

Atrybut action określa adres URL skryptu po stronie serwera, który ma przetworzyć dane wysłane z formularza. To tam trafią informacje wprowadzone przez użytkownika po kliknięciu przycisku "Wyślij".

Co określa atrybut method w formularzu?

Atrybut method określa metodę HTTP używaną do wysłania danych. Najczęstsze to GET (dane w URL, do pobierania danych) i POST (dane w ciele żądania, do wysyłania danych, zwłaszcza wrażliwych).

Kiedy używać metody GET, a kiedy POST?

Używaj GET dla prostych zapytań (np. wyszukiwanie), gdy dane nie są wrażliwe i ponowne wysłanie nie szkodzi. Używaj POST do wysyłania danych wrażliwych (hasła), dużych ilości danych lub gdy wysłanie powoduje zmianę na serwerze.

Jak stworzyć przycisk do wysłania formularza?

Można użyć znacznika <input type="submit" value="Tekst przycisku"> lub, co jest bardziej elastyczne, znacznika <button type="submit">Tekst przycisku</button>. Kliknięcie takiego przycisku inicjuje wysłanie formularza.