info@a-coding-project.de

WML: Formulare

Im Gegensatz zu HTML muss in WML ein Formular nicht explizit definiert werden - jede Card ist automatisch ein Formular und kann via Link oder Anweisungen abgeschickt werden. Da die grafische Leistung von mobilen Endgeräten jedoch relativ begrenzt ist, ist auch der Umfang an Formularelementen relativ begrenzt.

Textfelder

Textfelder werden ähnlich wie in HTML mittels des input-Elements definiert. Es benötigt das name-Attribut mit einem als Wert notierten eindeutigen Namen innerhalb der Card. Zudem kann optional das type-Attribut mit dem Wert text oder password angegeben werden. Es definiert ob es sich bei dem Feld um ein Textfeld oder um ein Passwortfeld handelt. Wird das Attribut nicht angegeben wird das Element als Textfeld angesehen. Beispiel:

<card>
 Name: <input name="user" type="text" value="Bitte angeben" />
 <br />
 Passwort: <input name="pass" type="password" />
 <do type="accept">
  <go href="login.php?u=$(user)&p=$(pass)" method="get"/>
 </do>
</card>

Im Beispiel bewirkt die Anweisung mit dem go-Task, dass die Formularinhalte an die Datei login.php gesandt werden. Die Formulardaten werden hier an die URL via Parameter angehangen. Der Syntax $(name) entspricht dabei einer WML-Variablen (siehe späteres Kapitel) deren Wert an dieser Stelle eingefügt wird (eben die Eingaben aus den beiden Feldern).

Auswahlfelder

Ebenso wie Textfelder, werden auch Auswahlfelder ähnlich denen aus HTML definiert. Man verwendet dazu das select-Element und fügt die Auswahlmöglichkeiten als option-Element ein. Dem Feld kann außerdem ein Name (name-Attribut) und ein Standardwert (value-Attribut) zugeteilt werden. Jede Option kann Ihrerseits einen Wert (value-Attribut) besitzen, der im Fall der Auswahl des jeweiligen Eintrags der Variablen die mit dem Feldnamen benannt wurde zugeordnet wird. Beispiel:

<card>
 Bitte aussuchen:<br />
 <select name="produkt" multiple="false"> 
  <option value="milch">Milch</option>
  <option value="butter">Butter</option>
  <option value="eier">Eier</option>
 </select>
 <do type="accept">
  <go href="auswahl.php?a=$(produkt)" method="get"/>
 </do>
</card>

Im obigen Beispel würde dann beim Absenden die Datei auswahl.php aufgerufen und ihr z.B. der Parameter a=butter übergeben. Das Attribut multiple gibt hierbei an, ob es dem User möglich ist mehrere (true) oder nur eine Option (false) auszuwählen.
WML-Auswahlfelder besitzen zudem die Möglichkeit, mittels der Auswahl automatisch auf eine andere Datei zu wechseln. Hierzu wird als Wert des onpick-Attribut des option-Elements einfach die aufzurufendeURLnotiert. Das Auswahlfeld fungiert dann vergleichbar mit einem Link. Beispiel:

<card>
 Gehe zu:<br />
 <select name="produkt"> 
  <option value="index.wml">Startseite</option>
  <option value="help.wml">Hilfe</option>
  <option value="contact.wml">Kontakt</option>
 </select>
</card>

Formulardaten versenden

Wenn das Formular per POST statt GET versandt werden soll, können die Formulardaten nicht einfach an die URL angehangen werden sondern müssen vom Browser seprat versandt werden. Hierzu notiert man innerhalb des zum Absenden verwendeten go-Elements weitere postfield-Elemente. Diese erhalten dann einen Namen (name-Attribut) und einen Wert (value-Attribut), die beim absenden mitgesandt werden. Beispiel:

<card>
 Name: <input name="user" type="text" value="Bitte angeben" />
 <br />
 Passwort: <input name="pass" type="password" />
 <do type="accept">
  <go href="login.php" method="post">
   <postfield name="u" value="$(user)"/> 
   <postfield name="p" value="$(pass)"/>
  </go>
 </do>
</card>

Weiterlesen: ⯈ WMLScript

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Auch interessant