Język WML, podobnie jak HTML daje nam możliwość komunikacji z odwiedzającymi nasze karty. Służą do tego formularze. Działają na podobnej zasadzie jak w HTML, aczkolowiek buduje się je trochę inaczej. Nie zastosujemy tu starego, dobrego znacznika <FORM>, a za to przejdziemy od razu do tworzenia pola tekstowego, czyli <INPUT>. A co z określeniem sposobu obsługi formularza ? Otóż w WML musimy posłużyć się znowu zadaniami i zdarzeniami...

<input/>  To element za pomocą którego wstawiamy na naszą kartę pole tekstowe. Może on wyglądać na przykład w ten sposób;

<input type="text" name="imie"/>

To jednak najprostsza forma użycia elementu input. Określiliśmy w nim typ wprowadzanych znaków (type) oraz nazwę zmiennej, która będzie określać ciąg znaków wprowadzony przez wypełniającego formularz (name). Jeżeli wartość atrybutu type określimy jako password, to wpisywane znaki będą przedstawione na ekraniku za pomocą gwiazdek. Innymi dostępnymi atrybutami są;

value - czyli domyślna zawartość pola tekstowego np. value="wpisz imie"
size - szerokość pola tekstowego np. size="6"
maxlength - ilość znaków które może maksywalnie pomieścić pole np. maxlength="25"
title - nazwa pola tekstowego
tabindex - określa który z kolei jest to element w tabeli indeksów na karcie
format - bardzo przydatny atrybut, umożliwiający kontrolę wpisywanych danych w pola. Możemy na przykład zastrzec aby wszystkie wpisywane znaki były wyłącznie literami bądź tylko cyframi. Format danych które mogą znaleźć się w polu jest określany za pomocą MASEK;

  • A - duże litery
  • a - małe litery
  • N - cyfry
  • X - cyfry i duże litery
  • x - cyfry i małe litery
  • M - wszelkie znaki wpisane z klawiatury

     Wpisanie tylko jednego znaku symbolizującego daną maskę będzie ograniczać liczbę wpisywanych znaków do jednego. Jeżeli więc chcemy aby użytkownik wpisał w pole numer telefoniczny możemy nadać atrybutowi format wartość NNNNNNN , a wtedy będzie możliwe wpisanie wyłącznie cyfr i to maksymalnie siedmiu.
Możemy także zastosować ciut bardziej skomplikowaną maskę używając łańcucha znaków NN\-NNN ; użytkownik będzie miał ułatwione zadanie przy wpisywaniu kodu pocztowego, gdyż po wpisaniu dwóch cyfr pojawi się znak minusa po którym będzie mógł wpisać tylko trzy cyfry. Dzieje się tak dlatego iż po znaku \ określiliśmy symbol który pojawi się sam w polu tekstowym.
     Możemy jednak stosować maski bez określania ilości wpisywanych znaków. Służy nam w tym celu symbol * - jeżeli określimy maskę postaci "*N" to będzie można wpisać dowolną ilość cyfr.

     "No dobra ! Wiem już jak tworzyć maski, ale gdzie jest przycisk "Submit", jak określić co ma się stać z formularzem po jego wypełnieniu ?"
Otóż wykorzystujemy tu zadania i zdarzenia. Konstruujemy kartę tak, aby po naciśnięciu jednego z przycisków nawigacyjnych można było przejść do innej strony- skryptu który obsłuży wpisane do formularza dane. W trakcie tego procesu wpisane informacje "lecą" razem z nami pod postacią zmiennych. Ilustruuje to wszystko poniższy przykład kompletnej karty;

<card id="pierwsza" title="formularze">
 <do type="accept" label="Wyslij">
  <go href="wynik.php?imie=$(imie)&amp;lat=$(wiek)"/>
 </do>
 <p>Podaj imie:<input type="text" name="imie"/><br/>
  Podaj wiek:<input type="text" name="wiek" format="NN"/>
 </p>
</card>


     Pozostaje jeszcze pytanie - i co dalej - przecież jeszcze nie określiliśmy adresu pod który zostanie wysłany e-mail z wynikami. Tą częścią zajmuje się bowiem skrypt. Jaki skrypt ? - No cóż, w czym tylko chcesz; w ASP, czy w PHP...
Ci którzy nie znają się zupełnie na programowaniu znajdą w następnym rozdziale bardzo proste przykłady skryptów przetwarzających dane z formularza.

 


WSTĘP | WPROWADZENIE | NARZĘDZIA | STRUKTRA DOKUMENTU | FORMATOWANIE TEKSTU | TABELE I OBRAZY | NAWIGACJA | ZADANIA I ZDARZENIA | FORMULARZE | PHP | LINKI | AKTUALIZACJE

Copyright (c) Tomasz Libera "Liberator" 2000- 2002 All Rights Reserved
Zezwala się na kopiowanie i rozpowszechnianie wiernych kopii niniejszego dokumentu, bez prawa wprowadzania zmian.
Kontakt: liberator@hot.pl, tel. 503-734-117, Gadu-Gadu: 868607