Файл: ycheb/wml_teach/6.php
Строк: 39
<?php
include '../../config.php';
$title='Учебник WML';
aut();
head();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div class=line>Строительство приложений</div>
Строительство приложений с помощью WML.<br>
WML был разработан для для устройств с низкой пропускной способностью и маленьким дисплеем. В качестве составной этого дизайна была применена концепция дек и карт. Один WML-документ (а точнее элементы, содержащиеся внутри элемента <wml>) называется декой (deck). Интерактивное взаимодействие с пользователем осуществляется с помощью карт (card). Достоинство такой реализации заключается в том, что несколько экранов могут быть загружены на клиентское устройство за один раз. Используя WMLScript, обработка действий пользователя может быть произведена с использованием находящихся в одной деке карт, исключая тем самым множественные транзакции с сервером. Конечно, в связи с ограниченными ресурсами клиентского устройства возникает другая проблема. Поэтому вам вполне возможно придется разбрасывать ваши карты по разным деками во избежании чрезмерного увеличения объема одного файла. <br><br>
Использование переменных<br>
Поскольку, как мы говорили ранее, в одной деке может содержаться несколько карт, нам потребуется механизм хранения информации из одной карты для ее последующего использования в другой. Этот механизм обеспечивается переменными. Переменные могут быть созданы и определены, используя несколько различных методов. <br>
• Используя элемент <setvar> в качестве результата выполнения пользователем определенных действий. Кроме того, этот элемент может быть использован для определения переменной внутри следующих элементов: <go>, <prev>, <refresh>. Следующий элемент создает переменную x и присваивает ей значение "123". <br>
• <setvar name="x" value="123"/><br>
• Переменным также присваивается значение через использование элементов <input>, <select>, <option> и других. При этом автоматически создается переменная с именем этого элемента. По окончании ввода, ей присваивается значение соответствующее выбору пользователя. Например следующий элемент создаст переменную с именем "x" <br>
• <select name="x" title="X Value:"><br>
Несмотря на то, что мы не описывает WMLScript, следует отметить, что WML и WMLScript используют одни и те же переменные в рамках одной деки. <br><br>
Создаем деку.<br>
В этом примере, мы начнем создавать деку, которая позволяет нам сначала выбрать имя пользователя из предложенного списка, затем ввести пароль после чего выводит на экран полученные данные. <br>
<?xml version="1.0"?><br>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"><br>
<wml><br>
<card id="Login" title="Login"><br>
<do type="accept" label="Password"><br>
<go href="#Password"/><br>
</do><br>
<p><br>
UserName:<br>
<select name="name" title="Name:"><br>
<option value="John Doe">John Doe</option><br>
<option value="Paul Smith">Paul Smith</option><br>
<option value="Joe Dean">Joe Dean</option><br>
<option value="Bill Todd">Bill Todd</option><br>
</select><br>
</p><br>
</card><br>
<card id="Password" title="Password:"><br>
<do type="accept" label="Results"><br>
<go href="#Results"/><br>
</do><br>
<p><br>
Password: <input type="text" name="password"/><br>
</p><br>
</card><br>
<card id="Results" title="Results:"><br>
<p><br>
You entered:<br/><br>
Name: $(name)<br/><br>
Password: $(password)<br/><br>
</p><br>
</card><br>
</wml><br>
Как вы наверно уже заметили, вначале примера идет пролог, в котором мы определяем версию XML и DTD для нашего документа. Затем следует элемент <wml>, дека которая содержит три карты: Login, Password и Result. Каждая из этих карт определяется с использованием элемента <card>. Поскольку карты Login и Password определяют события, они используют элемент <do type="accept"> для определения события которое произойдет, когда пользователь закончит ввод. <br>
Если мы определяем элемент <do> типом "accept" он появляется на экране в качестве опции <br>
Выбор этой опции приведет к анализу введенной пользователем информации. <br>
Атрибут "href" тега <go> работает так же, как и в элементе <a> из HTML. Также как и в HTML, для того, чтобы на экран вывелась другая карты из активной деки, на нее надо сослаться используя символ "#" перед именем карты. <br>
<go href="#result"/><br>
Эта карта обрабатывает пользовательский ввод и используя определенные в предыдущей карте переменные выводит их содержимое на экран. Вызов переменных осуществляется следующим образом: <br>
$(variable_name)
<?php
echo gb.'<a href="../../ycheb">Учебники</a>'.div;
echo gb.'<a href="'.H.'enter">Прихожая</a>'.div;
foot(); ?>