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

Урок 9: Завершение создания приложения для расчета стоимости путешествий

< Урок 8 || Урок 9: 12345 || Урок 10 >
  1. Нажмите OK, чтобы вернуться в диалоговое окно, и снова нажмите OK.

    Внешний вид документа не изменится, но в коде появится новый фрагмент, содержащий сценарий для создания запроса. Он находится в верхней части документа. В дальнейшем этот сценарий будет рассмотрен более подробно. На рисунке приведен код для ASP. При использовании ColdFusion код будет более понятным и компактным.

  2. В режиме Design (Дизайн) щелкните в форме на списке, чтобы выделить его. После этого на панели Property Inspector (Инспектор свойств) щелкните на кнопке List Values (Значения списка). Откроется диалоговое окно одноименного списка List Values. Поочередно выделите каждый элемент и нажмите кнопку Remove Value (Удалить значение) ("-").

    В итоге, диалоговое окно не должно содержать элементов.

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


  3. Не снимая выделения со списка, на панели Property Inspector (Инспектор свойств) нажмите кнопку Dynamic (Динамический).

    В результате, будет открыто диалоговое окно Dynamic List/Menu (Динамический список/меню), в котором к списку формы будут прикреплены динамические данные.

  4. В раскрывающемся списке Options from recordset (Опции из набора записей) выберите пункт rs_tourprices. В списке Values (Значения) укажите пункт tourID, а в списке Labels (Надписи) – пункт tourName. Нажмите OK.

    На страницу будет добавлен код, формирующий элементы меню. Важно заметить, что полученный сценарий ASP, ColdFusion или PHP поочередно перебирает все значения, извлеченные из базы данных. Другими словами, подобно тому, как в "Создание приложения для расчета стоимости путешествий" для каждого элемента требовалось задавать поочередно надпись и значение, так и сценарий за один прием загружает в список одну из 19 пар "надпись-значение". С помощью обычной циклической структуры сценарий ASP, ColdFusion или PHP проходит через каждую пару tourName-tourID в наборе записей и добавляет ее к элементу списка.

    Описанная выше процедура не требует вводить вручную 19 пар надписей и значений, что существенно ускоряет процесс разработки. Кроме того, при внесении изменений в базу данных они сразу же отобразятся и в списке. Это значит, что поддержка веб-страницы будет осуществляться автоматически – достаточно заниматься базой.


  5. Сохраните страницу, загрузите ее на сервер и протестируйте.

    Если раскрыть список, то отобразятся 19 поездок, отсортированных по алфавиту в порядке возрастания.

  6. Пользователям PHP. Если при тестировании страницы появляется сообщение об ошибке "undefined index" ("неопределенный индекс") (cм. рис.), следует исправить код, как показано ниже.

    Теперь попробуйте найти на странице tourprice.php следующий участок кода:

    <?php
    if ($_GET['error'] == "notnumeric")
    {
    echo "<p class=\"error\">*** Error! One or more fields was left blank or
     contained a non-numeric character.</p>";
    }
    ?>

    Замените его на указанный код:

    <?php
    if (isset($_GET['error']))
    {
    	if ($_GET['error'] == "notnumeric")
    {
    echo "<p class=\"error\">*** Error! One or more fields was left blank or
      contained a non-numeric character.</p>";
    }
    }
    ?>

    Эта ошибка появляется только в некоторых реализациях PHP. Ее причина заключается в том, что проверка переменной ( $_GET['error'] ) на соответствие определенному значению notnumeric выполняется без первоначального контроля существования переменной.

    Решение заключается в применении структуры вложенных условных операторов if. Внешнее условие проверяет, существует ли в запросе переменная error. Если существует, то производится проверка равенства переменной значению notnumeric. Но если переменной error в запросе нет, выполнение операции прекращается, что позволяет не учитывать источник возникновения проблемы.

  7. Заполните форму и подтвердите корректность выполнения этой процедуры.

    Загрузится страница tourprice_processor.asp с учетом введенных сведений и рассчитанных на их основе данных. Причем стоимость поездки будет неожиданно низкой. Причина заключается в том, что при расчете стоимости тура используются значения в поле tourID, каждое из которых меньше 20.

< Урок 8 || Урок 9: 12345 || Урок 10 >
Екатерина Мезенцева
Екатерина Мезенцева
Россия
Маргарита Туктарова
Маргарита Туктарова
Соединенное Королевство, London, kingston university, 2012