Пособие по написанию WAP сайтов

         

Подробнее о приложении Catalogltem.hdml



Подробнее о приложении Catalogltem.hdml

Как и приложение формата WML, файл Catalogltem.hdml позволяет пользователюввести со своего сотового телефона номер и описание выбранного им товара.Файл Catalogltem.hdml имеет исходный код, приведенный ниже: <HDML Version=3.0 Markable=True TTL=0> <Choice Name=OrderItem Method=Alpha> <Action Type=Accept Label=Edit> <Action Type=Soft1 Label=Next Task=GO Dest=CatalogShip.hdml> <Center>Catalog Order <Line>Item information <CE Task=GOSub Dest=#GetItemNum Vars=ItemNum=$ItemNum Receive=ItemNum> Item #:[$ItemNum] <CE Task=GOSub Dest=#GetItemDesc Vars=ItemDesc=$ItemDesc Receive=ItemDesc> Item:[$ItemDesc] </Choice> <Entry Name=GetItemNum Default=$ItemNum Key=ItemNum Format=N4N> <Action Type=Accept Task=Return Retvals=$ItemNum> Item #: </Entry> <Entry Name=GetItemDesc Default=$ItemDesc Key=ItemDesc Format=M14M> <Action Type=Accept Task=Return Retvals=$ItemDesc> Item: </Entry> </HDML>


Первый элемент внутри деки сообщает браузеру (или другим программистам),какая версия языка HDML используется приложением. Далее, выражение Markable=True сообщает, что браузер может установить закладку в исходной деке, аTTL=O сообщает ему о невозможности кэширования (таким образом, браузердолжен перезагружать эту деку каждый раз при обращении к нему пользователя).Далее приложение использует элементы <Action> для управления кнопками Edit(Редактировать) и Next (Следующий).
Сначала карта использует элемент <choice> для предоставления пользователювыбора того, что он желает редактировать: номер товара или его описание. Далее, основываясь на выборе пользователя, приложение передает управлениеэлементу GetltemNum или GetltemDesc для обеспечения ввода данных. Здесь используется поле format для определения формата вводимых пользователем значений переменных. К примеру, в элементе GetltemNum определяется формат N4N.Этот формат предусматривает ввод от одного до пяти числовых символов номератовара (N4N означает, что один числовой символ обязателен, остальные четыре -по необходимости)
После ввода пользователем номера и описания товара, приложение загружаетдеку CatalogShip.hdml, которая имеет следующий исходный код: Shipping information Ship to:[$ShipName] Address:[$ShipAddr1] Address:[$ShipAddr2] City:[$ShipCity] State:[$ShipState] Zip Code:[$ShipZip] Phone:[$ShipPhone] Ship to: Address: Address: City: State: Zip Code: Phone:
Для предоставления пользователю возможности выбора желаемого адресногополя приложение использует элемент <Choice>. Основываясь на выборе пользовaтеля, приложение передает управление именованному элементу <Entry> внутри деки, который предлагает ввести данные в определенном формате. Послеввода пользователем адреса отправки, приложение загружает декуCatalogBill.hdml, в которой предлагается ввести адрес для выписывания счета.Как вы понимаете, содержимое этой деки практически идентично содермимомуподобной деки, описанной ранее в этой главе.
После ввода информации по счету, приложение вызывает деку CatalogCredit.hdml,в которой пользователю предлагается ввести информацию по его кредитнойкарте. Содержимое этой деки приведено ниже:
Как и в других деках, в CatalogCredit.hdml используются элементы <Action> дляуправления кнопками Edit (Редактировать) и Next (Следующий). Далее, в исходном коде следует элемент <Choice> для предоставления пользователю возможности редактирования поля типа кредитной карты либо поля ее номера. Основываясь на выборе пользователя, приложение передает управление именованомуэлементу внутри деки, который предлагает пользователю ввести данные в определенном формате.
После ввода пользователем информации о кредитной карте приложение загружает файл CatalogDone.hdml, из которого запускается сценарий языка PerlCatalogOrderHDML.pl. Этому сценарию передаются параметры, как показано ниже: <HDML Version=3.0 Markable=True TTL=0> <Display Name=CatalogDone> <Action Type=Soft1 Label=Reset Task=GO Dest=CatalogItem.hdml> <Action Type=Accept Label=Order Task=GO Method=Post PostData=$ItemNum&$ItemDesc:noesc&$ShipName: noesc&$ShipAddr1:noesc&ShipAddr2:noesc&$ShipCity: noesc&$ShipState&ShipZip&$ShipPhone&$BillName: noesc&$BillAddr1:noesc&$BillAddr2:noesc&$BillCity: noesc&$BillState&$BillZip&$BillPhone&$CartType: noesc&$CardNum Dest=../waplibcgi/CatalogOrderHDML.pl> <br>Order form complete </Display> </HDML>
Как видите, в нашем случае используется единственое поле postdata, и параметры разделяются с помощью символа «амперсанд» (&).



Содержание раздела