Dzięki formularzom, które są umieszczane bezpośrednio na stronie WWW, możesz uzyskać wiele informacji o użytkownikach odwiedzających Twój serwis. Służą one również do zamawiania różnych towarów w sklepach internetowych, chociaż wtedy należy dodatkowo zadbać o bezpieczeństwo przesyłanych danych. Prosty formularz pocztowy przedstawiony w tym rozdziale, na pewno nie jest odpowiedni do przesyłania np.: numerów kart kredytowych, ważnych haseł dostępu czy innych poufnych danych! Bezpieczestwo można uzyskać przy pomocy skryptów wykonywanych po stronie serwera oraz protokołu SSL.
Formularz ma formę elektronicznej ankiety, którą wypełnia się wprost na stronie.
Możliwe jest przy tym wpisywanie tekstu, odpowiadanie na zadane pytania, czy zaznaczanie
jednej bądĽ kilku z podanych możliwości wyboru.
Taki formularz może być przesłany pocztą elektroniczną
gdzie jako "adres e-mail gdzie wysłać formularz" podaj swój adres poczty
elektronicznej
Natomiast zamiast "temat" można wpisać tytuł, jaki będzie nosił formularz
(jest to przydatne zwłaszcza w przypadku stosowania programów obsługujących formularze).
Każdy formularz składa się z różnych typów pól, dzięki którym użytkownik może wprowadzać dane. Są to np. pola do wpisywania tekstu, czy też pozwalające wybrać jedną, bądĽ kilka, z podanych opcji. Pola działające w analogiczny sposób, występują prawie w każdym programie komputerowym, dlatego użytkownicy nie powinni mieć problemów z wypełnieniem formularza na stronie WWW.
Pomiędzy podanymi wyżej znacznikami (<FORM> oraz </FORM>), mieszczą się wszystkie inne polecenia, dotyczące formularza (pola do wprowadzania danych). Każdy taki formularz musi rozpoczynać się od znacznika otwierającego <FORM>, a kończyć się znacznikiem zamykającym </FORM>, chyba że nie chcesz z nim nic robić (nigdzie go wysłać), ale po co Ci taka "atrapa". Dlatego staraj się o tym nie zapominać!
Dla zaawansowanych
Jako wartość atrybutu ACTION można również podać adres skryptu PHP lub CGI
(jeśli znajduje się on na tym samym serwerze, wystarczy podać względną ścieżkę dostępu).
Skrypt taki stanowi specjalny program, wykonywany wprost na stronie WWW (na serwerze).
Potrafi on, zgodnie z poleceniami programisty, przetworzyć wszystkie dane i np. zapisać je w oddzielnym pliku.
W ten sposób oszczędzamy sobie wiele pracy, a wyniki mogą zostać natychmiastowo
wyświetlone na ekranie - nie trzeba tego wykonywać ręcznie.
Jednak pisanie skryptów PHP lub CGI, jest dużo bardziej skomplikowane
niż tworzenie stron za pomocą prostego HTML. Dodatkowo nie wszystkie serwery WWW obsługują
takie
PHP i CGI to tzw. skrypty wykonywane po stronie serwera. Cechują się one m.in. tym, że potrafią zapisywać dane w zewnętrznych plikach. Oprócz nich istnieją jeszcze skrypty wykonywane po stronie klienta (np.: JavaScript lub Visual Basic - VBScript). Są one obsługiwane przez przeglądarkę użytkownika - na jego komputerze - dlatego mogą być wykonywane nawet bez dostępu do Internetu. Również i one obsługują formularze, lecz nie potrafią zapisywać danych w pliku.
Jeśli wysyłamy formularz do skryptu PHP lub CGI, jako wartość atrybutu METHOD możemy również podać: "get". Dzięki temu dane zostaną dołączone do adresu wywołania. Sposób ten stosuje się często dla bardzo krótkich formularzy. Natomiast jeżeli używamy formularza w skrypcie JavaScript bez wysyłania go nigdzie, atrybut METHOD nie jest konieczny.
Przykład:
Przy użyciu JavaScript'u można wprowadzić interaktywny formularz:Innym ważnym zastosowanie skryptów wykonywanych po stronie klienta, jest sprawdzenie poprawności wypełnienia formularza, jeszcze przed jego wysłaniem:
Przed wysłaniem formularza możliwe jest również sprawdzenie wszystkich pól, do których można wpisać tekst. Jeśli dane te są obowiązkowe, a użytkownik ich nie wpisze, formularz nie zostanie wysłany:
Naciśnij OK, bez wypełniania wszystkich pól:
Wiele osób pyta, w jaki sposób można stworzyć ankietę, której wyniki byłyby natychmiastowo wyświetlane na stronie. Pozwalają tego dokonać właśnie skrypty wykonywane po stronie serwera (np.: PHP lub CGI, ale nie JavaScript). Pisze się wtedy specjalny program, który przyjmuje głosy użytkowników (za pomocą formularza), a następnie zapisuje je w zewnętrznym pliku na serwerze. Potem jeśli chcemy wyświetlić wyniki, wystarczy odczytać ten plik i wypisać dane na stronie. W celu prezentacji wyników można użyć wykresu słupkowego (formatując odpowiednio szerokość komórek tabeli, w zależności od ilości oddanych głosów na daną odpowiedĽ). Niestety pisanie skryptów PHP lub CGI jest bardziej skomplikowane niż sam HTML.
Aby się przekonać, czy Twój serwer obsługuje skrypty PHP lub/i CGI (konieczne do stworzenia "automatycznej" ankiety), poszukaj informacji na stronie domowej serwera lub wyślij e-mail do administratora.
Dużo prościej jest jednak skorzystać z gotowych darmowych ankiet (sond), oferowanych za darmo w wielu serwisach. Garść adresów znajdziesz tutaj.
gdzie jako "nazwa" należy wpisać nazwę danego pola (np. skróconą treść pytania), która nie powinna być jednak zbyt długa! Zostanie ona póĽniej wysłana wraz z formularzem.
Atrybut NAME, powinien być unikatowy w obrębie dokumentu, tzn. żadne dwa pytania nie powinny mieć takiej samej nazwy. Dotyczy to również znacznika FORM, gdy chcemy wykorzystać formularz do współpracy ze skryptem po stronie klienta.
Dla zaawansowanych
Jeśli formularz ma zostać wykorzystany przez skrypt, nazwa musi spełniać wymagania, stawiane
identyfikatorom w danym języku programowania. Najczęściej można wpisywać pojedyncze wyrazy,
składające się z liter (oprócz polskich znaków), cyfr (ale nie na początku) i znaków podkreślnika ("_").
Zwykle wielkość liter jest rozróżniana.
Typ "text" jest podstawowym rodzajem pola tekstowego. Ma ono wysokość jednej linii tekstu i określoną długość. Można do niego wpisywać tekst, który póĽniej zostanie wysłany wraz z formularzem, jako odpowiedĽ na zadane pytanie.
UWAGA! Wszystkie pola (dowolnego typu), które mają się znaleĽć w formularzu, należy umieszczać pomiędzy tymi samymi znacznikami <FORM> oraz </FORM> (zobacz: Ramy formularza). Oczywiście w pojedynczym dokumencie można umieścić kilka formularzy - wtedy wstawiamy klika znaczników <FORM>...</FORM>, dla każdego formularza osobno.
Wygląd pól formularza można zdefiniować bardziej precyzyjnie dzięki możliwościom CSS - np. przy pomocy zamieszczonego generatora.
Przykład:
Zwróć uwagę, że po kliknięciu myszką wewnątrz poniższego pola, możesz wpisać tam jakiś tekst.W miejsce tekstu: "odpowiedĽ domyślna" można wpisać domyślną treść danej odpowiedzi. Zostanie ona dołączona do formularza, jeśli użytkownik nie wpisze innej.
Przykład:
gdzie jako "k" można podać długość pola w ilości znaków, które będą w nim jednocześnie widoczne (domyślnie 20 - w Internet Explorerze). Oczywiście użytkownik będzie mógł wpisać do takiego pola dowolną liczbę znaków, niezależnie od atrybutu SIZE.
Przykład:
gdzie jako "n" podaj maksymalną dopuszczalną ilość liter, z których może składać się odpowiedĽ - użytkownik nie będzie mógł wpisać dłuższego tekstu.
Przykład:
Wstawienie atrybutu READONLY powoduje, że tekstu zapisanego domyślnie w tym polu
(atrybut
Przykład:
Wstawienie atrybutu DISABLED powoduje zablokowanie pola.
Zablokowane pole w ogóle nie jest przesyłane z danymi formularza.
Przykład:
gdzie jako "nazwa" należy wpisać nazwę danego pola. Zostanie ona póĽniej wysłana wraz z formularzem. Nazwa nie powinna być zbyt długa!
Wprowadza pole, w którym można wpisać hasło.
Od zwykłego pola tekstowego różni się
tylko tym, że podczas wpisywania do niego tekstu, nie są widoczne podawane znaki, ale
jedynie gwiazdki ("*"). Można również stosować dokładnie te same atrybuty,
chociaż podanie hasła domyślnego, może nie być dobrym
Przesyłanie ważnych haseł dostępu w zwykłym formularzu pocztowym nie jest bezpieczne, ponieważ formularz taki nie jest szyfrowany. Niesie to ze sobą niebezpieczeństwo, że wiadomość w drodze do adresata może zostać przechwycona i odczytana przez osoby niepowołane.
Dla zaawansowanych
Można natomiast zaszyfrować cały formularz, podczas przesyłania go do skryptu,
pracującego na serwerze. Aby to zrobić, należy adres skryptu (atrybut ACTION dla znacznika
FORM) poprzedzić przez: "https://" (należy podać całkowity adres, a nie względną ścieżkę dostępu).
Spowoduje to nawiązanie połączenia przez bezpieczny protokół SSL. Niestety nie wszystkie
serwery obsługują takie
Wygląd pól formularza można zdefiniować bardziej precyzyjnie dzięki możliwościom CSS - np. przy pomocy zamieszczonego generatora.
Przykład:
Zwróć uwagę, że wpisywane znaki są automatycznie zastępowane gwiazdkami.Wykorzystując pole typu "password" można w prosty sposób zabezpieczyć wybraną stronę hasłem. W tym celu wystarczy na stronie głównej, do której wszyscy mają normalny dostęp, wstawić następujący kod:
Hasłem w tym przypadku jest nazwa strony bez rozszerzenia, którą chcemy zabezpieczyć.
Przykładowo: hasłem do strony tajna_strona.html (która znajduje się w tym samym katalogu co strona główna, czyli tam gdzie wstawiliśmy powyższy skrypt)
będzie tajna_strona
Należy przy tym pamiętać, że zabezpieczane strony muszą mieć rozszerzenie *.html,
a jeśli to niemożliwe, należy zmienić pierwszą linijkę powyższego skryptu w wyróżnionym miejscu.
Nie muszę chyba przypominać, że link do takiej strony nie może pojawić się w żadnym miejscu serwisu ani na żadnej innej stronie,
bo wtedy zabezpieczanie będzie zupełnie bezużyteczne, skoro dowolny użytkownik i tak będzie mógł wejść na "chronioną" stronę
po prostu klikając w taki link. Jeśli nazwa strony nie będzie publicznie prezentowana, to nikt bez znajomości hasła
(czyli w rzeczywistości nazwy ukrytej strony) nie będzie mógł się na nią dostać.
Oczywiście nic nie stoi na przeszkodzie, aby zabezpieczyć w ten sposób kilka różnych stron - każdą innym hasłem. Nie można zabezpieczyć jednak dwóch podstron tym samym hasłem, ponieważ każdy plik musi mieć inną nazwę. Aby zaimplementować taki mechanizm - logowanie i ewentualnie rejestrację nowych użytkowników - trzeba się posłużyć bardziej zaawansowanym skryptem obsługiwanym po stronie serwera, np. w języku PHP.
UWAGA!
Jeśli do komputera z którego korzystają użytkownicy posiadający hasło mają dostęp również inne osoby
(np. użytkownicy wchodzą na zabezpieczone strony z kafejki internetowej),
po zakończeniu pracy trzeba koniecznie wyczyścić tymczasowe pliki internetowe (tzw. cache przeglądarki) oraz historię w przeglądarce, która była używana.
Jeśli nie zostanie to zrobione, zabezpieczenie w ogóle nie będzie skuteczne!
Ponadto konieczne jest, aby w katalogu w którym znajduje się strona chroniona hasłem umieścić
plik "index.html", ponieważ bez niego na niektórych serwerach będzie można zobaczyć zawartość
katalogu, a tym samym nazwę ukrytej strony, która jest jednocześnie hasłem. Plik "index.html"
może być nawet pusty - ważne jest, żeby się znajdował w tym samym katalogu co tajny dokument!
gdzie jako "nazwa" należy wpisać nazwę danego pola (np. skróconą treść pytania),
która nie powinna być zbyt długa. Zostanie ona póĽniej wysłana wraz z formularzem.
Natomiast jako "wartość" podaj treść danej odpowiedzi. Zostanie ona również
dołączona do formularza.
Wszystkie pola tego typu, które dotyczą tego samego pytania, powinny nosić taką samą nazwę! Dodatkowo parametr VALUE jest tutaj absolutnie konieczny - musi on być inny dla każdej możliwości odpowiedzi!
Dla zaawansowanych
Jeśli zamierzasz wykorzystać formularz w skrypcie po stronie klienta (np. JavaScript),
każde pole tego typu powinno posiadać dodatkowo unikatowy identyfikator (atrybut
Jeżeli wysyłasz formularz do skryptu po stronie serwera (np. PHP lub CGI),
może to wymagać nadania innej nazwy NAME="nazwa[]".
Polecenie to spowoduje wyświetlenie pola w postaci kwadratu (pole wyboru), które można zaznaczyć, a także "odznaczyć", myszką. Dzięki niemu możesz wprowadzić pytanie, przy którym można wybrać kilka spośród podanych gotowych odpowiedzi.
Przykład:
Zwróć uwagę, że możesz zaznaczyć więcej niż jedno pole tego typu lub nawet nie zaznaczać żadnego. Zaznaczone pole możesz także "odznaczyć", powtórnie klikając na nie myszką:Podanie atrybutu CHECKED powoduje domyślne zaznaczenie pola. Możliwe jest zaznaczenie kilku pól tego typu, które dotyczą tego samego pytania.
Przykład:
Wstawienie atrybutu DISABLED powoduje zablokowanie pola.
Przykład:
Etykieta
Opis pola nie jest z nim w żaden sposób związany logicznie. Aby to zmienić,
należy użyć dodatkowego znacznika
Polecenie takie wprowadza na ekran etykietę z tekstowym opisem pola, która jest z nim skojarzona logicznie. Dzięki temu kliknięciu etykiety powoduje zwykle taki sam efekt jak kliknięcie samego pola, tzn. jego zaznaczenie lub odznaczenie (Internet Exlorer, Netscape 6, Opera 7), a dodatkowo w Windows XP wskazanie etykiety myszką spowoduje "podświetlenie" pola (Internet Exlorer). Etykieta może znajdować się w zupełnie innym miejscu jak samo pole (np. w innej komórce tabeli).
Zwróć uwagę, że wyróżnione fragmenty muszą być takie same dla etykiety oraz dla pola,
którego dotyczy. Ponadto w jednym dokumencie nie mogą znajdować się dwa pola o takim samym
identyfikatorze (atrybut
Etykiety można przypisywać do wszystkich typów pól formularza.
Przykład:
(spróbuj kliknąć opisy powyższych pól)
Klawisz skrótu
Możliwe jest przypisanie klawisza skrótu do danego pola
Atrybut
Przykład:
gdzie jako "nazwa" należy wpisać nazwę danego pola (np. skróconą treść pytania),
która nie powinna być zbyt długa. Zostanie ona póĽniej wysłana wraz z formularzem.
Natomiast jako "wartość" podaj treść danej odpowiedzi. Zostanie ona również
dołączona do formularza.
Pamiętaj aby wszystkie pola tego typu, które dotyczą tego samego pytania, nosiły koniecznie taką samą nazwę! Dodatkowo parametr VALUE jest tutaj absolutnie konieczny - musi on być inny dla każdej możliwości odpowiedzi!
Dla zaawansowanych
Jeśli zamierzasz wykorzystać formularz w skrypcie po stronie klienta (np. JavaScript),
każde pole tego typu powinno posiadać dodatkowo unikatowy identyfikator (atrybut
Polecenie to spowoduje wyświetlenie okrągłego pola, które możesz zaznaczać myszką (pole opcji).
W przypadku gdy istnieje więcej takich pól, jako możliwości odpowiedzi na to samo pytanie,
możliwe jest zaznaczenie tylko i wyłącznie jednego z nich. Raz zaznaczone pole tego typu, można
"odznaczyć" tylko poprzez zaznaczenie innego z podanych możliwości.
Polecenie to pozwala stworzyć pytanie z kilkoma możliwościami odpowiedzi, z których można wybrać
tylko jedną, ponieważ np. wybranie dwóch jednocześnie, jak w przypadku
checkbox, byłoby nielogiczne.
Przykład:
Zwróć uwagę, że możesz zaznaczyć (myszką) tylko jedno pole. Jeśli chcesz je "odznaczyć", musisz wybrać inną możliwość:Podanie atrybutu CHECKED powoduje domyślne zaznaczenie pola.
Oczywiście nie można zaznaczyć domyślnie dwóch pól tego typu, jako odpowiedzi na to samo pytanie, co wynika z ich sposobu działania.
Przykład:
Wstawienie atrybutu DISABLED powoduje zablokowanie pola.
Przykład:
Do pola tego typu można również przypisać etykietę oraz klawisz skrótu.
gdzie jako "nazwa" należy wpisać nazwę danego pola (np. skróconą treść pytania). Zostanie ona póĽniej wysłana wraz z formularzem (wysłane zostaną również wpisane możliwości odpowiedzi).
Jeśli chcemy, aby w formularzu zostały przesłane inne wartości niż treść znaczników <OPTION>,
można wprowadzić dla tych znaczników dodatkowe atrybuty
Polecenie pozwala wprowadzić listę rozwijalną (menu) - inaczej zwaną
również polem kombi - z której możemy wybrać jedną
(typ podstawowy) lub kilka możliwości (typ rozszerzony) - za pomocą klawisza Ctrl.
Każdy znacznik
Przykład:
Zwróć uwagę, że po kliknięciu tego pola, rozwija się menu, z którego możesz wybrać jedną z kilku opcji.Przykład:
Dodatkowe możliwości wybiera się trzymając wciśnięty klawisz Ctrl ("Control") lub przeciągając myszką:Aby można było zaznaczyć kilka opcji domyślnych, koniecznie należy zastosować typ rozszerzony (MULTIPLE)!
Przykład:
Zwróć uwagę, że w poniższym "okienku" jest zaznaczona domyślnie Możliwość 2, a nie jak poprzednio Możliwość 1:gdzie "w" oznacza ilości wierszy (linii) z odpowiedziami, które będą jednocześnie widoczne na ekranie (pole może oczywiście posiadać więcej opcji, niezależnie od atrybutu SIZE).
Przykład:
Wstawienie atrybutu DISABLED powoduje zablokowanie pola.
Przykład:
Wygląd pól formularza można zdefiniować bardziej precyzyjnie dzięki możliwościom generatora.
gdzie jako "nazwa" należy wpisać nazwę danego pola (np. skróconą treść pytania). Zostanie ona póĽniej wysłana wraz z formularzem.
Polecenie to wyświetla na ekranie wieloliniowe pole tekstowe (obszar tekstowy) o domyślnym rozmiarze 20 kolumn i 2 wierszy (w Internet Explorerze). Pozwala ono na wprowadzenie pewnego dłuższego komentarza przez użytkownika, który wypełnia formularz. Można także podać między znacznikami <TEXTAREA> oraz </TEXTAREA> treść domyślną, która pojawi się w tym polu (możliwe jest oczywiście jej póĽniejsze wymazanie przez użytkownika).
Wewnątrz TEXTAREA (w treści domyślnej) znaczniki nie są interpretowane - jeśli je wpiszemy, pojawią się w polu jako zwykły tekst. Przejście do następnej linii następuje poprzez klawisz Enter. Uwzględniane są dodatkowe spacje oraz tabulacja.
Przykład:
To jest przykład pola komentarza bez podania treści domyślnej:gdzie "x" oraz "y" oznaczają odpowiednio: ilość kolumn i wierszy tekstu, które mogą się jednocześnie zmieścić w polu, bez jego przewijania.
Przykład:
Wstawienie atrybutu READONLY powoduje, że tekstu zapisanego domyślnie w tym polu, nie będzie można modyfikować.
Przykład:
Wstawienie atrybutu DISABLED powoduje zablokowanie pola.
Przykład:
Przykład:
Przykład:
Przykład:
Jak widzisz dwie ostatnie metody niczym widocznym się nie różnią, jedynie w formularzu tekst będzie przesłany w różnych formach.
Atrybut WRAP nie wchodzi w skład specyfikacji HTML 4.01 - zaleca się stosowanie stylów.
Wygląd pól formularza można zdefiniować bardziej precyzyjnie dzięki możliwościom CSS - np. przy pomocy zamieszczonegogeneratora Kolor suwaków].
gdzie jako "nazwa" należy wpisać krótką nazwę danego pola. Zostanie ona póĽniej wysłana wraz z formularzem.
Polecenie wprowadza selektor plików, składający się z dwóch pól (np. w Internet Explorerze):
Selektor plików został wprowadzony teoretycznie po to, aby można było przesłać wybrany plik
w załączniku do listu (formularza). Wtedy dla znacznika FORM
należałoby dodatkowo użyć atrybut
Dla zaawansowanych
Wysyłanie plików w załączniku jest natomiast obsługiwane m.in. przez PHP
(należy wtedy dla znacznika FORM konieczne podać atrybut:
Przykład:
Zwróć uwagę, że po kliknięciu przycisku, otwiera się okienko z systemowym selektorem plików, a jeśli wybierzesz w nim jakiś plik, to w polu tekstowym pojawi się bezwzględna ścieżka dostępu do niego.gdzie jako "k" podaje się długość pola (tekstowego) w ilości znaków, które będą w nim jednocześnie widoczne (domyślnie 20 - w Internet Explorerze). Oczywiście użytkownik będzie mógł wpisać do takiego pola dowolną liczbę znaków, niezależnie od atrybutu SIZE.
Przykład:
Wstawienie atrybutu DISABLED powoduje zablokowanie pola.
Przykład:
Polecenie takie tworzy ukryte pole w formularzu. Nie jest ono widoczne ani dostępne
dla użytkownika, ale jego wartość
Dla zaawansowanych
Ukryte dane są często wykorzystywane do przekazywania informacji pomiędzy klientem a serwerem
(skrypty po stronie serwera), które w przeciwnym razie zostałyby utracone, z uwagi na
bezstanowy charakter protokołu HTTP.
gdzie jako "wartość" należy wpisać napis, który pojawi się na przycisku wysyłania formularza. Jeśli opuścimy ten parametr, pojawi się tam domyślny tekst, np.: "Prześlij kwerendę".
Polecenie wprowadza na ekran przycisk z tekstem, po naciśnięciu którego, nastąpi wysłanie formularza.
Wygląd pól formularza można zdefiniować bardziej precyzyjnie dzięki możliwościom CSS - np. przy pomocy zamieszczonego generatora.
Przykład:
Wstawienie atrybutu DISABLED powoduje zablokowanie pola.
Przykład:
gdzie jako "ścieżka dostępu do obrazka" należy podać
lokalizację na dysku, gdzie znajduje się
obrazek, który ma zostać wyświetlony jako przycisk wysłania formularza.
Natomiast zamiast "informacja alternatywna" można podać treść informacji,
która powinna pojawić się w przypadku, gdy obrazek nie zostanie wyświetlony, a także po wskazaniu go myszką
(atrybut ten nie jest konieczny).
Polecenie wprowadza na ekran przycisk w postaci obrazka, po naciśnięciu którego, nastąpi wysłanie formularza. Atrybut ALT pozwala podać tekst, który będzie wyświetlony zamiast przycisku w przeglądarkach tekstowych, a także jeśli użytkownik wyłączy w swojej przeglądarce wyświetlanie obrazów.
Przydatna własność
Pole wysłania formularza posiada ciekawą własność. Mianowicie jeżeli nadamy mu atrybut NAME="nazwa",
wtedy jego wartość zostanie wysłana wraz z formularzem, tak jak to się dzieje w przypadku zwykłych pól przechowujących wpisywane przez użytkownika dane.
Nowość polega jednak na tym, że w jednym formularzu może się znajdować kilka różnych pól wysyłających,
każde z nich może mieć inną nazwę lub/i wartość, a z formularzem jest wysyłana wartość tylko tego, za pomocą którego został on wysłany - tzn. tego, który został kliknięty.
Dzięki temu w niektórych przypadkach prostych formularzy nie trzeba wstawiać dodatkowych pól typu RADIO,
a wystarczy umieścić po prostu kilka różnych przycisków wysyłających.
Nie dotyczy to alternatywnego sposobu wysyłania formularzy - wtedy trzeba stosować metody konwencjonalne.
Przykład:
Z takim formularzem zostanie wysłana tylko jedna z wartości:
opcja=Opcja 1
opcja=Opcja 2
opcja=Opcja 3
w zależności o tego, który przycisk wciśnie użytkownik. Zatem będzie to równoznaczne z następującym konwencjonalnym formularzem:
W skryptach np. PHP własność tą często wykorzystuje się do potwierdzania decyzji użytkownika:
gdzie jako "wartość" należy wpisać napis, który pojawi się na przycisku wysyłania formularza. Jeśli opuścimy ten parametr, pojawi się tam domyślny napis, np.: "Resetuj".
Komenda wyświetla na ekranie przycisk, po naciśnięciu którego, nastąpi wyczyszczenie wszystkich udzielonych do tej pory odpowiedzi w ankiecie (np. jeśli się rozmyślimy).
Przykład:
Wypełnij formularz, a następnie kliknij jeden z poniższych przycisków:Zwróć uwagę, że kliknięcie któregokolwiek z powyższych przycisków, spowoduje wyczyszczenie wszystkich pól formularza (jeśli był on wcześniej wypełniony).
Przykład:
Przed wyczyszczeniem całego formularza, można się upewnić, czy użytkownik na pewno chce to zrobić. Dzięki temu wyeliminujemy możliwość przypadkowego naciśnięcia przycisku "reset". Ma to szczególne znaczenie zwłaszcza w przypadku długich formularzy, przy których ponowne wpisywanie wszystkich danych trwałoby dość długo.
Aby potwierdzić wyczyszczenie formularza, należy do znacznika <FORM> dodać
atrybut
Przykład:
Wprowadza na ekran przycisk. Polecenie to jest zbliżone do przycisków:
wysłania oraz wyczyszczenia
formularza, a także do: .
Jednak pozwala ono dodatkowo, wprowadzić do przycisku grafikę, tabelkę i inne elementy - wystarczy
umieścić dodatkowe znaczniki pomiędzy <BUTTON> oraz </BUTTON> (w miejsce treści przycisku).
Można również dowolnie formatować tekst, np. wprowadzając pogrubienie, pochylenie i inne.
W przypadku zastosowania
Przykład:
W Windows XP w Internet Explorerze wygląd przycisków o dużych rozmiarach jest bardzo nieestetyczny!
Pozwala zgrupować tematycznie kilka pól formularza, dzięki czemu zostają one objęte ramką. W drugiej z podanych wersji, powoduje pojawienie się tytułu na ramce grupującej. Możliwe jest określenie ułożenia tytułu, poprzez ustalenie atrybutu ALIGN dla znacznika LEGEND (trzecia wersja), gdzie jako "rodzaj" należy wpisać:
UWAGA! Znacznik LEGEND (tytuł ramki grupującej) musi znajdować się bezpośrednio po
znaczniku otwierającym <FIELDSET>.
Atrybut ALIGN="..." nie jest obsługiwany przez Netscape 6, natomiast Opera 6 wcale nie obsługuje znacznika LEGEND!
Wygląd ramki grupującej może się różnić w zależności od przeglądarki.
Przykład:
Formularze są wysyłane w formie zakodowanej, np. możesz otrzymać coś takiego:
Imi%EA=S%B3awomir&Nazwisko=Kok%B3owski&P%B3e%E6=M%EA%BFczyzna&Wiek=20-29&Muzyka=Rock&Muzyka=Underground&Przegl%B9darka=Internet+Explorer&System+operacyjny=Dos&System+operacyjny=Windows&Komentarz=Prosz%EA%2C+wpisz+tutaj+jaki%9C+komentarz...
Powyższy atrybut (
Imię=Sławomir
Nazwisko=Kokłowski
Płeć=Mężczyzna
Wiek=20-29
Muzyka=Rock
Muzyka=Inna
Muzyka=Underground
Przeglądarka=Internet Explorer
System operacyjny=Dos
System operacyjny=Windows
Komentarz=Proszę, wpisz tutaj jakiś komentarz...
Prawda, że łatwiej przeczytać coś takiego? Zatem staraj się zawsze używać tej metody w formularzach pocztowych, ponieważ może Ci ona zaoszczędzić dużo czasu na odszyfrowywanie przysłanych danych. Nie ma to natomiast większego znaczenia, w przypadku wykorzystywania formularza w skryptach (po stronie klienta lub serwera).
UWAGA!
Jeśli na stronie WWW została zdeklarowana zalecana w polskim Internecie
strona kodowa
Błędów prawdopodobnie nie będzie, jeśli w systemie Windows użyjemy stronę kodową
Jeżeli bardzo przeszkadzają Ci błędne litery w przysyłanych formularzach,
rozwiązaniem problemu może być zastosowanie mimo wszystko strony kodowej
Innym sposobem rozwiązania problemu jest automatyczne usunięcie przed wysłaniem formularza
wszystkich polskich znaków, które mógł podać użytkownik.
Odnosi się to do pól tekstowych oraz
obszarów tekstowych.
Jeśli chodzi o inne pola (np.: checkbox, radio),
dla nich możesz samodzielnie wpisać w treści atrybutów
Zwróć uwagę, że tekst po znaczniku <OPTION> może się różnić od wartości atrybutu VALUE. W ten sposób użytkownik wypełniający formularz, zobaczy poprawne polskie litery.
Aby automatycznie usunąć polskie znaki z pól tekstowych i komentarza, można umieścić przed formularzem odpowiedni skrypt:
Zwróć uwagę, aby dodać atrybut onsubmit="usun_pl(this)"
Jeśli jeszcze niezbyt dobrze rozumiesz formularze, specjalnie dla Ciebie napisałem ten przykład. Myślę, że po jego przeczytaniu, wyjaśni się wiele niezrozumiałych dotąd rzeczy.
Uwaga!
Czcionką pogrubioną zaznaczono fragmenty, które można (a nawet trzeba) zastąpić
innym tekstem. Są to np.: pytania, poszczególne odpowiedzi, wartości parametrów i inne.
Kolorem czerwonym (pomiędzy
znakami
oraz )
zaznaczono komentarz. Nie jest on oczywiście konieczny (możesz go pominąć);
pozwala zorientować się, czego dotyczy fragment kodu poniżej niego.
Oto treść kodu Ľródłowego:
A oto co otrzymamy po wpisaniu powyższego tekstu:
(możesz kliknąć przycisk "Wyślij formularz", aby zobaczyć szybki efekt, bez wysyłania danych)
Aby ustalić dokładne położenie pól formularza, zwykle umieszcza się je w komórkach tabeli. W ten sposób możliwe jest np. ustawienie opisów w lewej kolumnie, a samych pól w równej odległości po prawej (nie dotyczy to pól wyboru, opcji itp., do których użytkownik nie może wpisywać tekstu). Jeśli zrobimy to bez tabeli, pola będą poukładane nierówno z powodu różnej długości opisów.
np. po wpisaniu:
Jeśli chcemy, aby opisy w lewej kolumnie przylegały do pól formularza (wyrównanie do prawej),
wystarczy dla komórek tabeli <TD> (lub pierwszej kolumny)
dodać atrybut
Niestety opisany w tym rozdziale sposób wysyłania prostych formularzy pocztowych nie zawsze działa
Aby zastosować taki skrypt, wstaw przed formularzem (najlepiej w treści nagłówkowejdokumentu) następujący kod:
Na koniec musisz tylko dodać do znacznika <FORM> formularza atrybut: onsubmit="mail_form(this); return false", np.:
Działanie tego skryptu nie jest identyczne jak w przypadku prostego formularza pocztowego. Podczas gdy normalny formularz jest automatycznie wysyłany, w tym przypadku zostanie otwarte okno programu pocztowego użytkownika z wypełnioną na podstawie danych z formularza treścią. Treść tą użytkownik będzie mógł wyedytować, a następnie będzie trzeba kliknąć przycisk wysyłający list. Jednak pomimo różnic i pewnych niedogodności (np. możliwość ręcznej zmiany treści) takie działanie jest chyba raczej lepsze niż zupełny brak możliwości wysłania prostego formularza pocztowego z poziomu strony WWW. Problem ten dotyka naprawdę dużą grupę internautów. Jest bardzo prawdopodobne, że również czytelnicy Twojej strony mają problemy z wysłaniem do Ciebie formularza umieszczonego w serwisie.
UWAGA!
Istnieje duże prawdopodobieństwo, że w formularzu zamiast polskich liter mogą się pojawić nieoczekiwane znaki.
Dlatego zaleca się dołączenie również skryptu odpowiadającego za automatyczne usunięcie polskich liter przed wysłaniem formularza.
Aby to zrobić, przed formularzem należy umieścić oba skrypty, a potem następująco zmodyfikować znacznik <FORM>