Rozdział 17. Projektowanie formularzy W tym miejscu wiesz już niemal wszystko, co jest konieczne do tworzenia funkcjonalnych, atrakcyjnych i w pewnym stopniu interaktywnych stron WWW. Jeśli się jednak nad tym głębiej zastanowisz, to okaże się, że przepływ informacji w tworzonych stronach jest jednokierunkowy. Dokumenty HTML, obrazy, dzwięki oraz obraz wideo, przekazywał tylko w jedną stronę do osób przeglądających Twoje strony WWW przy użyciu przeglądarek. Ten rozdział dotyczy tworzenia formularzy HTML służących do pobierania informacji od osób odwiedzających witryny WWW. Formularze umożliwiają zbieranie niemal wszystkich rodzajów informacji i przekazywanie ich na serwer w celu natychmiastowego przetworzenia przez skrypt CGI lub pózniejszej analizy przeprowadzanej przy użyciu innych aplikacji. Jeśli spędzasz wiele czasu na przeglądaniu zasobów WWW, to bez wątpienia napotkałeś wiele różnych formularzy. Istnieje ich bardzo wiele: proste formularze służące do przeszukiwania, formularze umożliwiające zalogowanie się na witrynie, kupowanie produktów za pośrednictwem Internetu itd. Wszystkie mają jedną cechę wspólną akceptują informacje podawane przez osobę oglądającą stronę WWW. Jeśli zwracasz uwagę na zagadnienia zgodności, to możesz być spokojny. Formularze były obecne niemal od samego początku istnienia języka HTML i są dobrze obsługiwane przez wszystkie najpopularniejszej przeglądarki. W tym rozdziale nie zapomnę wskazać wszelkich, dotyczących problemów, zgodności przeglądarek. Niech formularze Cię nie przerażają! Choć wiele z nich może wyglądać na skomplikowane, to w rzeczywistości stworzenie odpowiedniego kodu jest bardzo proste. Najtrudniejszym zadaniem jest określenie wyglądu formularzy. W tym rozdziale zostaną przedstawione następujące zagadnienia, które pozwolą Ci na tworzenie wszelkich możliwych formularzy HTML, w tym: w jaki sposób formularze HTML współpracują ze skryptami na serwerze w celu zapewnienia interaktywności, tworzenie prostego formularza, aby poznać zasady ich konstrukcji, przedstawienie wszelkich dostępnych form elementów kontrolnych formularzy, których można używać w celu tworzenia przycisków opcji, pól wyboru, itp., zastosowanie bardziej zaawansowanych elementów kontrolnych formularzy, które 478 Część 6. Mapy odsyłaczy i formularze zadziwią Twych przyjaciół i współpracowników, planowanie formularzy w celu dopasowania przesyłanych danych ze skryptem obsługującym je na serwerze. Forma i funkcja formularzy Przede wszystkim powinieneś zrozumieć kilka spraw dotyczących formularzy. Na początek, formularz jest częścią strony WWW tworzonej przy wykorzystaniu elementów HTML. Każdy formularz składa się z elementu FORM zawierającego specjalne elementy kontrolne, takie jak przyciski, pola tekstowe, pola wyboru, przycisk Submit oraz listy. Te elementy kontrolne stanowią interfejs użytkownika formularza (czyli te elementy formularza, które użytkownik może zobaczyć na stronie WWW). Użytkownicy, wypełniając formularz, prowadzą interakcję z tworzącymi go elementami kontrolnymi. Dodatkowo można także korzystać z wielu innych elementów formularzy, stosując je do tworzenia opisów, wyświetlania dodatkowych informacji, określania struktury, itp. Te elementy nie są częścią samego formularza, jednak mogą poprawić jego wygląd i przydatność. Formularz HTML pozwala na pobranie informacji od osoby odwiedzającej witrynę. Zgromadzone informacje można przesłać do skryptu umieszczonego na serwerze, w celu ich przetworzenia lub zapisania. Gdy użytkownik wypełnia formularz HTML, wpisuje informacje lub wybiera opcje, posługując się elementami kontrolnymi formularza. Ostatnim krokiem jest przesłanie formularza. Podczas przesyłania formularza wykonywanych jest kilka czynności. W pierwszej kolejności przeglądarka określa elementy kontrolne formularza zawierające jakieś informacje i tworzy zbiór danych, który będzie te informacje zawierał. Następnie dane z formularza są kodowane i przesyłane na serwer w celu przetworzenia. Niezwykle ważne jest zrozumienie implikacji tego ostatniego kroku, gdyż to właśnie dane są najważniejsze. W końcu, były one głównym powodem utworzenia formularza. Gdy użytkownik kliknie przycisk Submit, cały proces przestaje być wyłącznie procesem HTML i zostaje uzależniony do skryptów (nazywanych skryptami CGI Common Gateway Interface) przechowywanych i wykonywanych na serwerze WWW. Innymi słowy, aby formularz był użyteczny będziesz musiał zawczasu posiadać na serwerze odpowiedni skrypt, który pobierze i zapisze dane lub przetworzy je w inny sposób. Istnieje jednak kilka ważnych wyjątków od tej reguły. Formularz może skierować użytkownika na inną stronę, w zależności od wprowadzonych informacji lub przesłać pod wskazany adres wiadomość poczty elektronicznej zawierającej dane wpisane w formularzu. Ten drugi wyjątek jest bardzo przydatny i stanowi prosty sposób testowania formularzy. Zamiast stosowania skryptów możesz poinstruować formularz, aby przesłał dane pocztą elektroniczną pod Twój adres. Ostatnim wyjątkiem jest wykorzystanie formularzy w Dynamicznym HTML-u, gdzie czasami służą do przechwytywania zdarzeń generowanych przez użytkowników, takich jak kliknięcie myszką. Formularze w dynamicznych stronach HTML mogą być wykorzystywane do gromadzenia informacji, jednak służą także do tworzenia przycisków, których kliknięcie powoduje wykonanie pewnych czynności. Rozdział 17. Projektowanie formularzy 479 Ćwiczenie 17.1: Tworzenie prostego formularza pobierającego nazwę użytkownika i hasło W porządku, zabierzmy się do pracy i stwórzmy prosty formularz ilustrujący pojęcia przedstawione w poprzedniej części rozdziału. Stworzyłam w tym celu stronę WWW, na której najpierw należy podać imię oraz hasło umożliwiające przejście do dalszej części witryny. Stronę tę przedstawiłam na rysunku 17.1. Pracę rozpocznij od uruchomienia swego ulubionego edytora HTML (w moim przy- padku jest to Notatnik) i stworzenia szkieletu strony. Rozpocznij od podania standar- dowych informacji nagłówka strony, następnie dodaj do niej znacznik i, w koń- cu, zamykające znaczniki i