Опубликован: 24.12.2006 | Уровень: для всех | Доступ: платный
Урок 11:

Создание разделов с информацией о путешествиях

< Урок 10 || Урок 11: 1234567 || Урок 12 >
  1. Щелкните на раскрывающемся списке справа от надписи "Tour name" ("Название тура"), чтобы выделить ее. На панели Property Inspector (Инспектор свойств) нажмите кнопку Dynamic (Динамический).

    Ранее к этому списку уже прикреплялись динамические данные. Фактически, все опции, перечисленные в списке, динамически добавляются из базы данных. В данный момент целью является не добавление новых элементов (они и так присутствуют в полном составе), а настройка списка таким образом, чтобы по умолчанию выбиралось значение, соответствующее параметру, переданному на страницу в составе URL-адреса.

  2. В диалоговом окне Dynamic List/Menu (Динамический список/меню) щелкните на значке с изображением молнии рядом с полем Select Value Equal To (Выбрать значение, равное) в нижней части диалогового окна. Откроется диалоговое окно Dynamic Data (Динамические данные). В этом окне выберите пункт QueryString.tourID (ASP) или URL.tourID (ColdFusion и PHP) и дважды нажмите OK, чтобы сохранить внесенные изменения.

    Как известно из "Завершение создания приложения для расчета стоимости путешествий" , объект списка определяется двумя основными видами информации: надписью, которую видят посетители (в качестве надписей в данном случае используются названия путешествий) и ее значениями, которые пересылаются в составе переменных формы (в качестве значений применяются идентификаторы путешествий). В данном шаге выбранное значение (а, следовательно, и надпись) устанавливается равным полученному значению параметра URL-адреса.

  3. Сохраните страницу tourprice.asp и загрузите ее на сервер. На панели Site (Сайт) выберите страницу tours_detail.asp и нажмите клавишу (F12), чтобы ее протестировать. Выберите любое путешествие и щелкните на ссылке с названием страны (которая приведет к соответствующему профилю), а затем на ссылке Tour Price Calculator (которая приведет на страницу с соответствующим названием путешествия, выбранным по умолчанию в меню формы).

    При наведении указателя мыши на ссылку Tour Price Calculator (Калькулятор для расчета стоимости тура) в строке состояния отображается адрес страницы с прикрепленным к нему параметром. Механизм работает превосходно, но за одним исключением.

  4. Не закрывая браузер, щелкните на ссылке Tour Price Calculator из любого раздела с описанием путешествия. Не вводя значения в поля Number of Adults (Количество взрослых) и Number of Children (Количество детей), нажмите кнопку Submit.

    Запускается сценарий для проверки формы, и страница загружается снова – с сообщением об ошибке. Все работает правильно. Но в списке Tour Name (Название тура) вновь выбран пункт Biking from Oxford to London (Байкинг от Оксфорда до Лондона). При повторной загрузке страницы параметр tourID пропадает, поэтому форма не может отобразить нужный тур и выводит первый запись из набора.

    В идеале, сценарий проверки правильности заполнения формы, находящийся на странице tourprice_processor.asp, при повторной загрузке страницы tourprice.asp должен отправлять обратно и значение параметра tourID.

  5. Закройте страницу tourprice.asp и откройте tourprice_processor.asp . В режиме Code (Код) в верхней части документа найдите комментарий "Form validation script; redirects user back to tourprice.asp if form fields…" В сценарии, к которому относится комментарий, найдите следующий код:

    Для ASP:

    Response.Redirect("tourprice.asp?error=notnumeric")

    Для ColdFusion:

    <cflocation url="tourprice.cfm?error=notnumeric">

    Для PHP:

    header("Location: tourprice.php?error=notnumeric"

    Этот участок кода отвечает за перенаправление на страницу tourprice.asp. Как видно из кода, здесь уже задан один параметр URL-адреса. Для улучшения работы приложения достаточно добавить еще один параметр.

  6. Измените найденный код так, чтобы он выглядел следующим образом:

    Для ASP:

    Response.Redirect("tourprice.asp?error=notnumeric&tourID=" &Request.Form("tourName"))

    Для ColdFusion:

    <cflocation url="tourprice.cfm?error=notnumeric&tourID=#form.tourName#">

    Для PHP:

    header("Location: tourprice.php?error=notnumeric&tourID=".$_POST['tourName']);

    Несложно догадаться, для чего предназначен добавленный код. При перенаправлении на страницу tourprice он прикрепляет к запросу переменную URL-адреса tourID. Значение этой переменной равно значению переменной формы form.tourName, которое было выбрано в списке к моменту нажатия кнопки Submit. Как известно из шагов 6, 7 и 8, при загрузке страницы tourprice.asp значение в списке по умолчанию выбирается на основе переменной URL-адреса tourID.

  7. Сохраните все файлы, загрузите их на сервер и снова протестируйте.

    На этот раз все должно работать без сбоев. Данные незаметно передаются от одного приложения другому, и страница реагирует соответствующим образом благодаря простым операциям по пересылке и подготовке данных.

Резюме

В этом уроке вы узнали о:

  • синтаксисе SQL-инструкции для объединения данных из разных таблиц и о создании таких объединений;
  • разметке страницы по разделам с описанием путешествий на основе комбинации статического HTML-кода и динамических данных;
  • динамическом добавлении изображений и динамическом формировании альтернативного текста для них;
  • применении серверной модели поведения Repeated Region (Повторяющаяся область) для одновременного вывода на страницу нескольких разделов;
  • установке навигационной панели для перемещения между записями;
  • объединении трех разных приложений путем внесения разумных изменений в механизм отправки и получения данных.
< Урок 10 || Урок 11: 1234567 || Урок 12 >
Екатерина Мезенцева
Екатерина Мезенцева
Россия
Маргарита Туктарова
Маргарита Туктарова
Соединенное Королевство, London, kingston university, 2012