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



              

Рассмотрение Peri-сценария HotelAvailHDML.pl



Рассмотрение Peri-сценария HotelAvailHDML.pl


После выбора пользователем гостиницы программный код приложения Hotellnfoзапускает сценарий HotelAvailHDML.pl, формирующий на экране приглашениепользователю на ввод регистрационных данных, таких, как число постояльцев,дата заселения и дата выселения. Как и в случае WML-приложения, которое моглобы быть написано с использованием только WML, так и HDML-приложение можнобыло бы запрограммировать, воспользовавшись только HDML. Peri-сценарийHotelAvailHDML.pl реализуется с помощью следующего программного кода: #!/usr/bin/perl read (STDIN, $HotelCode, $ENV{'CONTENT_LENGTH'}); $Deck = "Content-type: text/x-hdml <HDML Version=3.0 Markable=True TTL=0> <Choice Name=Avail> <Action Type=Accept Label=Edit> <Action Type=Soft1 Label=Check Task=GO Method=Post PostData=\$HotelCode&\$(CheckInDate:noesc)& \$(CheckOutDate:noesc)&\$NumGuests Dest=CheckAvailHDML.pl> <Center>Web Inns<br> <Center>$HotelCode <CE Task=GOSub Dest=#GetCheckIn Vars=CheckInDate=\$CheckInDate Receive=CheckInDate> Check In (mm/dd/yy): \$CheckInDate <CE Task=GOSub Dest=#GetCheckOut Vars=CheckOutDate=\$CheckOutDate Receive=CheckOutDate> Check Out (mm/dd/yy): \$CheckOutDate <CE Task=GOSub Dest=#GetNumber Vars=NumGuests=\$NumGuests Receive=NumGuests> Number of guests: \$NumGuests </Choice> <Entry Name=GetCheckIn Default=\$CheckInDate Key=CheckInDate Format=NN/NN/NN> <Action Type=Accept Task=Return RetVals=\$CheckInDate> Check In: </Entry> <Entry Name=GetCheckOut Default=\$CheckOutDate Key=CheckOutDate Format=NN/NN/NN> <Action Type=Accept Task=Return RetVals=\$CheckOutDate> Check Out: </Entry> <Entry Name=GetNumber Default=\$NumGuests Key=NumGuests Format=N*N> <Action Type=Accept Task=Return RetVals=\$NumGuests> Number of guests: </Entry> </HDML>"; print $Deck;
Как можно видеть, сценарий просто создает HDML-карту, которая принимает регистрационные данные пользователя. Внутри программного кода карты используется элемент <Choice>, обеспечивающий возможность указания пункта регистрационных данных, нуждающегося в редактировании. Затем, основываясь на выборе пользователя, выполняется ветвление программного кода и переход на элемент <Entry>, обеспечивающий отображение приглашения пользователю наввод фактических данных. Поле Format, присутствующее внутри каждого элемента <Entry>, определяет формат соответствующих данных. Наконец, послеввода пользователем данных, приложение вызывает сценарий CheckAvailHDML.pl,который подобно своему WML-аналогу является достаточно простым и выводитна экран одну и ту же информацию, независимо от выбранной гостиницы и введенных регистрационных данных.









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