Vstup uživatele

Ukažme si jednoduchý příklad zadání dat uživatelem:

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="main" title="vstup">
<do type="accept" label="dalsi">
<go href="#ok"/>
</do>
<p>
Zadejte své jméno:
<input type="text" name="name"/>
</p>
</card>
<card id="ok" title="Ahoj brachu">
<do type="prev" label="zpet">
<prev/>
</do>
<p>
Zadane jmeno je$(name). </br>
Klikni na tlacitko zpet.
</p>
</card>
</wml>

Příklad v emulátoru zde

Když označíte vstup, objeví se vstupní pole a můžete vložit své jméno. Po dokončení se automaticky objeví v textovém poli. Potom můžete kliknout na Options, kde můžete vybrat Next pro zobrazení následující stránky. Jak můžete vidět je zde ještě jiná volba "Edit Selection". Když na ni kliknete, vrátíte se zpátky k druhé obrazovce, kde můžete editovat text. Po kliknutí na Next, se objeví stránka s vaším jménem a s tlačítkem zpet k navrácení na předchozí stránku.

<input/> Tag zobrazí vstupní pole kam může uživatel vkládat text. Atribut type určuje typ vstupu. V tomto příkladě je použit textbox. Další možné typy vstupů jsou následující:
Typ password, který zobrazuje hvězdičky, když uživatel vkládá znaky. Nedoporučuje se používat tento typ, protože je obtížné vkládat text na mobilním telefonu bez prohlížení.

Atribut name určuje jméno proměnné, do které se uloží text zadaný uživatelem. Nemusíte dekladrovat proměnnou před jejím použitím, je deklarována automaticky.


<prev/> Toto je další úloha, kterou můžete specifikovat, zajistí návrat na předchozí stránku.


$(...) Používá se k odkazu na proměnnou. Není podstatné, zda je proměnná deklarována v jiné kartě, pokud je ve stejné desce.

Přenos dat na server

Existují dvě základní metody posílání dat z formulářů, jedná se o GET a POST. Ty najdou své uplatnění také při tvorbě WAP stránek pomocí WML. Programátor zde však může narazit na řadu omezení a dalších skutečností, kterých si dosud nebyl vědom. Zjednodušeně řečeno, při použití metody GET jsou data předávána prostřednictvím URL, zatímco při využití POST nikoliv. Reálné mobilní telefony s WAPem mají totiž relativně výrazně omezenu maximální délku URL adresy. Toto omezení pak následně ovlivňuje maximální délku (součet délek) proměnných předávaných v URL adrese prostřednictvím metody GET (Nokia 7110 - 512 bytů). Zatímco u metody POST se metody nepředávají přímo URL adrese, je zde omezení pouze maximální velikostí decku ve zkompilované podobě (Nokia 7110 13000 bytů).
Jednoduchý příklad na vytváření formulářů.

<wml>
<card id="vstup" title="Vstup textu">
<p>Zadej text:<br/>
<input type="text" name="vstup"/>
<anchor>Odeslat
<go href="http://127.0.0.1/getipost.php3" method="post">
<postfield name="text" value="$(vstup)"/>
</go>
</anchor>
</p>
</card>
</wml>

 

<do><do/> Atribut method určuje jakým způsobem se přenesou data zpět na server. V současné době jsou podporované dvě metody (post a get).


<postfield/> Tag se používá tam, kde chcete nastavit jméno a hodnotu proměnné. Atribut name určuje jméno proměnné. Jméno používá server k odkazování na proměnnou. Atribut value udává hodnotu proměnné. Může to být textový řetězec, nebo jako v příkladu, proměnná deklarovaná v kartě. V příkladu je proměnná first uzavřena v $(...), což znamená náhradu proměnné její hodnotou, která byla předána serveru jako řetězec.

V řadě aplikací jistě bude více využita metoda POST před GET, protože má menší omezení a nepředává uživatelské jméno a heslo přes URL. Samozřejmě záleží na programátorovi, pro kterou metodu se rozhodne. Podrobněji si metodu get a post ukažeme v kapitole WAP a PHP.