WML - Элементы управления форм. Часть II. Автор - Бешкенадзе А.Г.
Эта статья является продолжением предыдущей статьи, посвящённой основам создания WAP-страниц при помощи языка разметки WML (Wireless Markup Language).
Для создания форм управления в WML, аналогично HTML, используется несколько специальных тэгов, соответствующих различным элементам управления:
- <input>
- <select>
- <option>
Остановимся по подробнее на каждом теге.
input Данный тэг, аналогичен по смыслу одноименному тэгу из языка разметки HTML и может содержать следующие атрибуты:
- name — имя переменной.
- type — по умолчанию "text", может быть так же "password".
- value — значение переменной.
- format — задает маску ввода, по умолчанию "*M" (форматы масок рассмотрим ниже).
- emptyok — устанавливает может ли поле быть пустым. Испульзеться булево значение по умолчанию emptyok="false".
- size и maxlength — задет ширину поля в символах и максимальное число символов соответственно. По умолчанию число символов не ограничено.
А | Можно вводить любой символ, кроме цифр, в верхнем регистре.
| а | Можно вводить любой символ, кроме цифр, в нижнем регистре.
| N | Разрешаеться ввод любой цифры.
| X | Разрешаеться ввод любого символа в верхнем регистре.
| x | Разрешаеться ввод любого символа в нижнем регистре.
| M | Допускаеться ввод ввод любого символа, подразумеваеться что символ будет в верхнем регистре.
| m | Допускаеться ввод ввод любого символа, подразумеваеться что символ будет в нижнем регистре.
| *f | "Здесь ""f"" - любой из спецификаторов. Такая запись подрузомевает ввод любого (в том числе нулевого) числа символов, описываемых спецификатором f. Встречаеться может только один раз и только в конце макси. "
| nf | "Здесь ""n"" - это любая, отличная от нуля, цифра. ""f"" - число от 1 до 9. Пример, 4X позволяет ввести 4 цифры. "
| с | "Позволяет включить в поле некоторый символ ""с"". Этот символ будет фиксированным, и пользователь не сможет его изменить."
|
Примечание Следует помнить, что все одиночные теги закрываются слэшем (/). Пример: <input />,<br />, <img />.
select Данный тэг, аналогичен по смыслу одноименному тэгу из языка разметки HTML и может содержать следующие атрибуты:
- name — имя переменной.
- value — значение переменной.
- title — заголовок списка.
Приведённый список атрибутов содержит лишь наиболее распространённые элементы.
option Данный тэг содержит следующие атрибуты:
- value — значение переменной.
- title — заголовок списка.
Пример формы Отправить данные из формы можно двумя путями. Первый из них продемонстрирован в листинге ниже:
<anchor>Ok
<go href="/wap/mod/guestbook/insert_db.php" method="post">
<postfield name="name" value="$(name)"/>
</go>
</anchor>
Здесь тэг <anchor> указывает текст после нажатия на которых происходит отправка данных. В отличие от тэга <a> текст не подчёркивается. Следует помнить, что такой способ отправки данных не поддерживаться старыми браузерами. Тэг <go> указывает адрес обработчика формы, которому отправляются данные (аналог form), postfield имеет следующие атрибуты: name - имя параметра, value - значение параметра, записывается ввиде $(value).
Второй способ отправки данных обработчику может продемонстрирован в следующем листинге:
<do label="Ok" type="accept">
<go href="/wap/mod/guestbook/insert_db.php" method="post">
<postfield name="name" value="$(name)"/>
<postfield name="mess" value="$(mess)"/>
<postfield name="trans" value="$(trans)"/>
</go>
</do>
Здесь do указывает кнопку название которой задаётся параметром label, type - указывает тип кнопки и может принимать три значения: accetp, prev, help.
Примечание Рекомендуется использовать оба способа отправки данных, так как часть браузеров в сотовых телефонах поддерживает только один из предложенных выше способов отправки данных.
В завершение статьи рассмотрим пример формы отправки заказа с мобильного устройства:
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd" >
<wml>
<card title="Buy Product">
name <input name="name" size="10" format="m" />
<br/>
second name <input name="sname" size="10" format="m" />
<br/>
Select Product <select name="product">
<option value="paper"> Paper </option>
<option value="pen">Pen</option>
<option value="table">Table</option>
</select>
<br/>
<anchor>Ok
<go href="product.php" method="post">
<postfield name="name" value="$(name)"/>
<postfield name="sname" value="$(sname)"/>
<postfield name="product" value="$(product)"/>
</go>
</anchor>
<br/>
<do label="Ok" type="accept">
<go href="product.php" method="post">
<postfield name="name" value="$(name)"/>
<postfield name="sname" value="$(sname)"/>
<postfield name="product" value="$(product)"/>
</go>
</do>
</card>
</wml>
Для обработки используем листинг product.php:
<?php
header("Content-type: text/vnd.wap.wml;charset=windows-1251");
echo '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">';
echo '<wml>
<card title="Product">';
echo "Name: $name";
echo "Second Name: $sname";
echo "Select Product: $product";
echo "</card></wml>";
?>
Вот и все. Следует заметить, что некоторые теги, которые использовались нами подходят не только для отправки форм, о чём будет рассказано в следующих статьях.
|