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

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

< Урок 10 || Урок 11: 1234567 || Урок 12 >
Аннотация: Изучается синтаксис SQL-инструкции для объединения данных из разных таблиц, применение серверной модели поведения Repeated Region (Повторяющаяся область) для одновременного вывода на страницу нескольких разделов; установка навигационной панели для перемещения между записями; объединении трех разных приложений путем внесения разумных изменений в механизм отправки и получения данных.

Внимание! Для работы с этим курсом необходимы учебные файлы, которые Вы можете загрузить здесь.

Во время обучения в колледже я в течение нескольких лет изучал испанский язык. В начале второго года обучения я спросил профессора: "Что мы будем проходить в этом году?" Профессор ответил: "То же самое, что и в прошлом, но я надеюсь, что на этот раз на другом уровне". Несмотря на то, что второй год курса обучения охватывал большую часть материала, изученного ранее, он был качественно другим. Мы стали тоньше чувствовать нюансы, свободнее выражать свои мысли, то есть усваивать язык.

То же самое происходит и с приложениями, создаваемыми в уроках 11 и 12. Большинство действий покажутся знакомыми, но на этот раз следует более глубоко проработать представленные в упражнении материалы, а, возможно, и восполнить и отдельные пробелы в знаниях. Работа с динамическими данными, извлеченными из баз данных, проводилась на протяжении трех предшествующих уроков, так что процесс создания наборов записей и динамического добавления полученных из этих наборов записей значений на страницы не должен показаться чем-то сложным. Помимо вывода простого текста, в выполненных упражнениях производился динамический вывод изображений и описывался способ отображения чисел в формате валюты. Более того, в конце урока 10 производился поиск данных из одной таблицы на основе критерия, заданного для другой. Из выполнения и многократного создания кода для решения подобных задач и складывается процесс разработки динамических сайтов.

У языка SQL гораздо больше возможностей, чем простое извлечение данных из одной таблицы. В этом уроке будет вручную написан SQL код, объединяющий несколько таблиц при помощи предложения JOIN

увеличить изображение
Рис. 11.1. У языка SQL гораздо больше возможностей, чем простое извлечение данных из одной таблицы. В этом уроке будет вручную написан SQL код, объединяющий несколько таблиц при помощи предложения JOIN

Так, уроки 11 и 12 построены на основе указанных выше ключевых моментов. Как и в случае с приложением для поиска и отображения информации о странах, будет создано мини-приложение, состоящее из двух страниц, позволяющее пользователям найти и вывести на страницу описания выбранных ими путешествий. Но путешествия – они, в конце концов, являются главной особенностью сайта Newland Tours – требуют более сложного набора возможностей. Будет реализовано три различных подхода для доступа к турпоездкам (отображать все туры, показать туры по конкретному региону или отобразить путешествия в одной из стран). Помимо этого будет показано, как переслать оперативные данные из данного приложения в приложения с информацией по стране и калькулятором для расчета стоимости путешествия с тем, чтобы эти отдельные приложения заработали на более высоком интеллектуальном уровне.

Для создания SQL-кода вместо панели Recordset (Набор записей) в уроках будет применяться ручное кодирование. Такой подход значительно усовершенствует навыки работы с SQL. При этом SQL-код значительно усложнится. Для совместного использования динамических данных, серверных сценариев и SQL-запросов потребуется стратегическое мышление. В то же время без особых усилий будут использоваться уже изученные способы пересылки данных: формы, строки запроса/URL-адреса, локально и запрос. Наконец, статический HTML-код нередко будет комбинироваться с динамическим кодом ASP, ColdFusion или PHP самыми разнообразными способами и с применением навыков креативного мышления.

Что будет изучаться:

  • планирование приложения для поиска и отображения путешествий;
  • создание набора записей на основе SQL-кода, написанного вручную;
  • разметка страницы для описания путешествий и ее наполнение данными;
  • разбиение набора записей на страницы, чтобы за один раз отображалось не слишком много информации;
  • разумное объединение приложения для отображения описаний путешествий с калькулятором для расчета их стоимости.

Время выполнения

На выполнение этого урока потребуется приблизительно два часа.

Файлы урока

Исходные файлы:

iLesson11/Start/newland/generic_template.asp

Lesson11/Start/newland/tourprice.asp

Lesson11/Start/newland/tourprice_processor.asp

Итоговые файлы:

Lesson11/Complete/newland/tours_detail.asp

Lesson11/Complete/newland/tourprice.asp

Lesson11/Complete/newland/tourprice_processor.asp

Планирование приложения

Перед разработкой любого приложения следует подробно разобраться в том, как оно должно работать. В процессе создания непременно потребуется что-либо усовершенствовать и принять новые решения, и идея будет развиваться дальше. Но прежде, чем начинать, следует точно знать, что именно будет построено. Нередко я рисую блок-схемы как с помощью программы Freehand MX, так и на бумаге.

В случае с этим приложением рекомендуется снова посетить онлайновую версию сайта и посмотреть окончательную версию приложения. После того, как станет ясно, к чему следует стремиться, все шаги станут намного понятнее.

  1. Откройте в браузере страницу, расположенную по адресу:http://www.allectomedia.com/newland_dynamic/tours.asp , для идентификации пользователя введите "osiris@allectomedia.com", в качестве пароля – "osiris", а затем нажмите кнопку для регистрации Submit.

    Процедура регистрации для входа в систему будет реализована через несколько уроков.

  2. Не нажимая кнопку мыши, наведите указатель на ссылки с названиями географических регионов и на ссылку View all tours (Просмотр всех туров) у нижнего края страницы.

    Cтраница содержит три различных способа для доступа к описаниям путешествий. Во-первых, туры отображаются по выбранному региону. Во-вторых, можно показать все путешествия для выбранной страны. Если щелкнуть на ссылке View all tours, то на странице будут представлены все путешествия (без всякой фильтрации).

    При наведении указателя мыши на ссылки, фильтрующие данные по региону, окажется, что к URL-адресу прикреплен параметр regionID=1 (или другое значение). Неудивительно, что SQL-оператор на странице с описаниями (tours_details.asp) использует для фильтрации именно этот параметр. Но при наведении указателя на ссылку View all tours к адресу не добавляются параметры. Поскольку при переходе по этой ссылке данные не фильтруются, нет необходимости пересылать на следующую страницу какие-то переменные.

    Если выбрать в меню отдельную страну и нажать кнопку Submit, данные будут отправлены в качестве переменной формы и использованы для фильтрации выбранных записей на следующей странице. Конечно, список стран в этом меню формируется динамически, поэтому список всегда отображает самые последние изменения (см. рис. вверху следующей страницы).

  3. Щелкните на нескольких разных ссылках и пару раз воспользуйтесь формой, чтобы представить, как происходит совместная работа страниц для поиска и отображения нужных туров.

    Особое внимание следует уделить URL-адресу. Он содержит параметры только при щелчке на одной из ссылок с названием региона. При переходе на страницу при помощи формы или ссылки View all tours параметры URL-адреса не передаются. Также следует обратить внимание, что все три способа позволяют просмотреть информацию о путешествиях в любой из выбранных стран (см. рис. внизу следующей страницы).

  4. Из любого раздела с описанием путешествия щелкните на ссылке Tour Price Calculator (Калькулятор для расчета стоимости поездки).

    Следует обратить внимание на то, что в раскрывающемся списке с названиями путешествий, отображается именно тот тур, описание которого было на экране во время перехода по ссылке. Так, например, если щелкнуть на ссылке Tour Price Calculator, расположенной в разделе с описанием путешествия "Highlights of Morocco" ("Достопримечательности Марокко"), то в списке окажется выбранным именно это название. Отчасти, это возможно благодаря параметру URL-адреса (в случае с "Highlights of Morocco" — это tourID=17).

    Во введении к уроку говорилось, что приложение для поиска и отображения разделов с описанием путешествий будет настроено на совместную работу с приложением для расчета стоимости путешествий. Настройка будет произведена позднее в этом уроке.

    И еще, как говорилось ранее, сайт показывает все путешествия, предоставляемые Newland Tours на данный момент, даже при внесении изменений в базу данных. При этом, отображение соответствует критерию отбора нужной записи, который выбирает пользователь для поиска нужной информации.

Завершив изучение приложения, следует закрыть браузер и вернуться в Dreamweaver.

< Урок 10 || Урок 11: 1234567 || Урок 12 >
Юрий Макушин
Юрий Макушин
Россия, Москва, РЭА им. Плеханова, 2004