V dalším článku o WML se naučíme vkládat formuláře do našich stránek a povíme si něco málo o WML scriptu, který, mimo jiné, umožňuje data z formuláře dále využívat.

Formuláře se od těch, které známe z (X)HTML tolik neliší. Jak ale jistě tušíte, existuje ve WML spousta místních specialitek a ani formuláře nejsou výjimkou. Samotný element input ještě tak zvláštní není. Jen nesmíme zapomenout na to, že se pohybujeme v jazyce založeném na XML, takže musíme na konec elementu vložit lomítko <input ... />. Seznam atributů významných pro prvek input:

name Název vstupu, povinný atribut, určuje název proměnné, ve které bude obsah pole uložen (viz dále).
type Typ vstupu, může být buď text nebo password, výchozí hodnota je text.
value Implicitní hodnota = počáteční text ve vstupním poli, který uživatel později změní.
format Formát textového pole – viz. tabulka č. 2.
emptyok Výchozí hodnota je true, může být přenastavena na true. Pokud je true, může být ponechán obsah textového pole prázdný, pokud je false, musí uživatel zadat do pole alespoň jeden znak.
size Velikost vstupního pole – podobně jako v (x)HTML.
maxlength Maximální délka textu ve vstupním poli, podobně jako v (x)HTML.
tabindex Index pro přeskakování mezi políčky tabulátorem nebo jiným k tomu určeným prvkem (závisí na implementaci prohlížeče a typu mobilního telefonu).
title Název vstupu, který se zobrazí uživateli. Slouží pouze jako informace uživateli.

Pro úplnost ještě přikládám seznam atributů významných pro prvek input:

A Velké písmeno včetně interpuknčních znamének.
a Malé písmeno včetně interpuknčních znamének.
N Číslice
X Velké písmeno i další znak.
x Malé písmeno i další znak.
M Písmeno i další znak, počátek editace s velkou znakovou sadou.
m Písmeno i další znak, počátek editace s malou znakovou sadou.
*X Libovolný počet znaků viz některý z předchozích formátů (X je písmeno označující formát). Za tímto označením již nesmí nic být a nesmí se opakovat.
nX n počet znaků viz některý z předchozích formátů (X je písmeno označující formát). Za tímto označením již nesmí nic být a nesmí se opakovat.

Zde jsou ukázky několika možností zápisu:

<?xml version=“1.0″ encoding=“ISO-8859-2″?>
<!DOCTYPE wml PUBLIC „-//WAPFORUM//DTD WML 1.1//EN“
„http://www.wapforum.org/DTD/wml_1.1.xml“>
<wml>
<card title=“Prvky INPUT“>
<p>
<input type=“text“ name=“jmeno“ title=“Jméno“ />
<input type=“text“ name=“prijmeni“ title=“Jméno“ value=“Novák“ />
<input type=“text“ name=“adresa“ title=“Jméno“ format=“*M“ size=“30″ maxlength=“50″ />
<input type=“password“ name=“heslo“ title=“Vaše heslo“ />
</p>
</card>
</wml>

A teď ta opravdová specialitka. Atribut type totiž nelze nastavit na submit. Naštěstí existuje, na můj vkus poněkud kostrbaté, ale přeci jen řešení. To nese název WML script. Údaje ze všech vstupních polí se totiž uchovávají do WMLScriptových proměnných. Tím ztrácí své opodstatnění i element form.

Hodnotu textového pole můžeme vložit kamkoli do dokumentu pomocí jednoduché WMLScriptové konstrukce $(nazevpromenne). Pokud tedy budeme chtít text ze vstupního pole hned vypsat na obrazovku, můžeme použít následující kód:

<?xml version=“1.0″ encoding=“ISO-8859-2″?>
<!DOCTYPE wml PUBLIC „-//WAPFORUM//DTD WML 1.1//EN“
„http://www.wapforum.org/DTD/wml_1.1.xml“>
<wml>
<card title=“Formular“>
<p>
<input type=“text“ name=“jmeno“ title=“Vaše jméno“ />
$(jmeno)
</p>
</card>
</wml>

V praxi ale spíše využijeme vkládání obsahu vstupního pole do odkazu:

<?xml version=“1.0″ encoding=“ISO-8859-2″?>
<!DOCTYPE wml PUBLIC „-//WAPFORUM//DTD WML 1.1//EN“
„http://www.wapforum.org/DTD/wml_1.1.xml“>
<wml>
<card title=“Formular“>
<p>
<input type=“text“ name=“jmeno“ title=“Vaše jméno“ />
<a href=“dale.php?jmeno=$(jmeno)“>Pokračujte…</a>
</p>
</card>
</wml>

Hodnotu samozřejmě můžeme využít i na jiné kartě daného dokumentu:

<?xml version=“1.0″ encoding=“ISO-8859-2″?>
<!DOCTYPE wml PUBLIC „-//WAPFORUM//DTD WML 1.1//EN“
„http://www.wapforum.org/DTD/wml_1.1.xml“>
<wml>
<card title=“Formular“>
<p>
<input type=“text“ name=“jmeno“ title=“Vaše jméno“ />
<a href=“#dvojka“>Pokračujte…</a> </p>
</card>
<card title=“Formular II.“ name=“dvojka“>
<p>
Vaše jméno je $(jmeno) . </p>
</card>
</wml>

Také můžeme obsah všech proměnných při přechodu na kartu vymazat. To se dělá nastavěním atributu newcontext v elementu card na true:

<?xml version=“1.0″ encoding=“ISO-8859-2″?>
<!DOCTYPE wml PUBLIC „-//WAPFORUM//DTD WML 1.1//EN“
„http://www.wapforum.org/DTD/wml_1.1.xml“>
<wml>
<card title=“Formular“>
<p>
<input type=“text“ name=“jmeno“ title=“Vaše jméno“ />
<a href=“#dvojka“>Pokračujte…</a> </p>
</card>
<card title=“Formular II.“ name=“dvojka“ nexcontext=“true“>
<p>
Vaše jméno je $(jmeno) . </p>
</card>
</wml>

A na závěr si ještě povíme o elementu select. Je to trochu méně obvyklý typ vstupu, obzvláště na wapu. To ale neznamená že by nenašel své využití. Uživateli v podstatě nabídne něco jako „roletkové menu“, ve kterém si může vybrat jednu položku reprezentovanou pomocí elementů option:

<?xml version=“1.0″ encoding=“ISO-8859-2″?>
<!DOCTYPE wml PUBLIC „-//WAPFORUM//DTD WML 1.1//EN“
„http://www.wapforum.org/DTD/wml_1.1.xml“>
<wml>
<card title=“Formular“>
<p>
<select name=“jmeno“> <option value=“Karle“>Karel</option> <option value=“Petře“>Petr</option> <option value=“Ondro“>Odřej</option> <option value=“Honzo“>Jan</option> </select> Ahoj $(jmeno) . </p>
</card>
</wml>

Ukázky ze všech článků najdete na http://wap.podklady/1999-2008.interval.cz/slabikarwml/.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět