`), a następnie zawierać główne znaczniki ``, `
` (gdzie umieszczamy metadane, tytuł strony, linki do stylów CSS) oraz `` (gdzie znajduje się widoczna treść strony). Nasz formularz kontaktowy powinien znaleźć się właśnie w sekcji ``, najlepiej w dedykowanym dla niego fragmencie strony, na przykład w sekcji ` Teraz, gdy znamy już podstawowe elementy, możemy złożyć je w działający formularz. Poniższy kod zawiera pola na imię, adres e-mail oraz pole wiadomości, a także przycisk wysyłania. Wszystkie pola są oznaczone jako wymagane (`required`), co zapewni podstawową walidację po stronie przeglądarki. Pamiętaj, że atrybut `action` jest tutaj pusty (`""`), co oznacza, że formularz zostanie wysłany do tego samego adresu URL, na którym się znajduje. Aby formularz faktycznie działał i wysyłał e-maile, będziemy musieli w przyszłości uzupełnić ten atrybut o adres skryptu serwerowego lub zewnętrznego serwisu. Formularze kontaktowe często wymagają zebrania dodatkowych informacji, które pomogą w kategoryzacji zapytań. Jednym z najprostszych sposobów na dodanie opcji wyboru jest użycie znacznika ` Kiedy użytkownik klika przycisk "Wyślij", przeglądarka przetwarza dane z formularza zgodnie z atrybutami `action` i `method`. Atrybut `action` wskazuje adres URL, na który dane mają zostać wysłane. Może to być ścieżka do skryptu PHP, pliku Python, lub adres zewnętrznego serwisu. Metoda `POST` (najczęściej używana) oznacza, że dane są wysyłane w ciele żądania HTTP, co jest standardowym i bezpiecznym sposobem przesyłania danych formularza, zwłaszcza gdy są one dłuższe lub zawierają wrażliwe informacje. Jeśli atrybut `action` jest pusty lub nieprawidłowy, dane nie zostaną nigdzie wysłane, a formularz nie zadziała poprawnie. To kluczowy moment, który często sprawia początkującym najwięcej problemów: sam HTML nie jest w stanie wysłać wiadomości e-mail. HTML odpowiada za strukturę i prezentację formularza na stronie internetowej. Aby dane z formularza mogły zostać przetworzone i wysłane jako e-mail, potrzebny jest kod wykonywany po stronie serwera, czyli tzw. backend. Najpopularniejszym językiem do tego celu jest PHP, ale równie dobrze można użyć Node.js, Python, Ruby czy innych technologii serwerowych. Skrypt backendowy odbiera dane wysłane przez formularz, przetwarza je i następnie używa funkcji serwera pocztowego do wysłania wiadomości e-mail na wskazany adres. Ten artykuł skupia się na tworzeniu frontendowej części formularza w HTML, ale warto pamiętać, że do pełnej funkcjonalności niezbędny jest backend. Na szczęście, jeśli nie chcesz lub nie masz możliwości samodzielnego pisania kodu backendowego, istnieje proste rozwiązanie. Wiele zewnętrznych serwisów oferuje gotowe rozwiązania do obsługi formularzy. Popularne opcje to Formspree, Netlify Forms (jeśli hostujesz stronę na Netlify), czy Getform. Działają one w prosty sposób: podajesz specjalny adres URL dostarczony przez serwis w atrybucie `action` Twojego formularza HTML. Kiedy użytkownik wyśle formularz, dane trafią do tego serwisu, który następnie prześle je na Twój adres e-mail i często oferuje dodatkowe funkcje, takie jak przechowywanie historii wysłanych wiadomości. Jest to świetna opcja dla osób początkujących lub dla projektów, gdzie nie potrzebujemy skomplikowanego przetwarzania danych po stronie serwera. Jednym z najbardziej frustrujących problemów jest sytuacja, gdy użytkownicy wysyłają formularz z pustymi polami, co prowadzi do niekompletnych lub bezużytecznych danych. Na szczęście, jak już wspomnieliśmy, HTML5 oferuje proste rozwiązanie: atrybut `required`. Dodanie go do dowolnego pola `` lub ` Jeśli po kliknięciu przycisku "Wyślij" nic się nie dzieje, a dane nie docierają do odbiorcy, najczęstszą przyczyną jest nieprawidłowo skonfigurowany atrybut `action`. Upewnij się, że ścieżka podana w `action` jest poprawna. Jeśli używasz własnego skryptu PHP, sprawdź, czy ścieżka do niego jest prawidłowa względem lokalizacji pliku HTML. Jeśli korzystasz z zewnętrznego serwisu, upewnij się, że skopiowałeś i wkleiłeś jego adres URL dokładnie. Pamiętaj również, że sam HTML nie wystarczy potrzebujesz backendu lub zewnętrznego serwisu, który faktycznie odbierze i przetworzy dane. Brak działającego backendu lub błędny `action` to najczęstsze powody, dla których formularz "nie działa". Przeczytaj również: Kolor tekstu HTML - Jak zrobić to dobrze? Poradnik CSS Chociaż HTML jest fundamentem, który definiuje strukturę formularza, to właśnie arkusze stylów CSS (Cascading Style Sheets) odpowiadają za jego wygląd. Domyślnie formularze HTML mogą wyglądać bardzo prosto i nieatrakcyjnie. Aby poprawić ich estetykę, nadać im spójny wygląd z resztą strony, czytelnie rozmieścić pola i etykiety, konieczne jest użycie CSS. Możesz kontrolować kolory, czcionki, marginesy, padding, a nawet tworzyć złożone układy. Choć ten artykuł skupia się na HTML, warto wiedzieć, że nauka CSS jest kolejnym, niezbędnym krokiem do stworzenia profesjonalnie wyglądającego formularza kontaktowego.
Gotowy do wklejenia kod: Uniwersalny formularz z imieniem, e-mailem i wiadomością
Rozbudowa formularza: Jak łatwo dodać kolejne pola, np. listę wyboru "temat rozmowy"?
Kliknięto "Wyślij" i co dalej? Wyjaśniamy, dlaczego sam HTML to za mało
Tajemnicze atrybuty `action` i `method`: Dokąd wędrują dane z formularza?
Rola backendu: Dlaczego potrzebujesz PHP (lub podobnej technologii) do wysłania e-maila?
Formularz bez pisania backendu? Poznaj serwisy takie jak Formspree i Netlify Forms
Najczęstsze błędy i pułapki: Jak ich uniknąć i zapewnić działanie formularza?
Problem: Użytkownicy zostawiają puste pola. Rozwiązanie: Atrybut `required` i walidacja HTML5
required>Problem: Formularz nie wysyła danych. Rozwiązanie: Sprawdź poprawność atrybutu `action`
Problem: Formularz jest nieczytelny i brzydki. Rozwiązanie: Wprowadzenie do stylizacji za pomocą CSS
