В этом примере минимальная стоимость покупки для применения скидок -- $1000. Что мешает нам сделать еще один порого для новых скидок, например, равным $100 000?
Резюме
Прогресс налицо. Эта страница получает данные от пользователя, обрабатывает их, делает необходимые проверки и возвращает пользователю результат -- и все без передачи данных на сервер и обратно.
В этом разделе вы познакомились:
- с условными выражениями, которые позволяют избирательно выполнять вам блоки кода;
- конструкциями циклов, которые дают возможность многократно выполнять однотипные действия при условии выполнения заданного требования.
Теперь, когда мы умеем вводить, обрабатывать и отображать данные, пришло время узнать, как проверять правильность данных перед посылкой на сервер.
P.S. Домашнее задание: выясните как работает справка.
Урок 5. Использование VBScript при создании форм
Поскольку возрастает интнерес к формам на Web-страницах, появляется необходимость в проверке правильности данных перед их отправкой броузером клиента на сервер. Как язык сценария VBScript хорошо приспособлен для решения этой задачи. После того как заполнена и проверена, отправить данные может тот же самый сценарий. На этом уроке мы рассмотрим процессы проверки и отправки данных.
Проверка содержимого ваших форм
Этот процесс заключаетсч в проверке того, что:
- введены все требуемые данные;
- все данные введены правильно.
Написание сценария, осуществляющего такую проверку, однообразно и утомительно, но позволяет избавиться от ошибок при передаче данных.
Пример такой проверки, который мы будем исследовать, не задействует ничего нового из средст VBScript. Мы просто использовали элементы, изученные в предыдущих уроках, и соединили их новым способом. Перед тем как идти дальше, вы можете посчитать для себя полезным поразмышлять самостоятельно, как это все можно сделать с помощью уже знакомых средств VBScript.
Уже подумали? Теперь рассмотрим пример, для того чтобы показать вам, что можно сделать для проверки содержимого форм.
Проверка вводимой информации
Этот пример на удивление прост. В нем есть единственное поле, куда пользователь может ввести свой возраст и кнопку, используемую для отправки данных на сервер.
<HTML>
<HEAD>
<TITLE>Упражнение по VBScript: 5</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--Это сделано для броузеров, которые не понимают
Option Explicit
Sub cmdSubmit_OnClick()
'Проверяем, введена ли информация пользователем.
If (Len(document.frmExample5a.txtAge.value) = 0) Then
MsgBox "Перед отправкой вы долны ввести свой возраст."
Exit Sub
End If
'Проверка того, является ли введенная информация числом.
If (Not(IsNumeric(document.frmExample5a.txtAge.value))) Then
MsgBox "В поле возраста необходимо ввести число."
Exit Sub
End If
'Проверяем, правильно ли введен возраст.
If (document.frmExample5a.txtAge.value < 0) Or _
(document.frmExample5a.txtAge.value > 100) Then
MsgBox "Вы ввели неверный возраст (столько не живут)."
Exit Sub
End If
'Если данные корректны, то отправляем их.
MsgBox "Возраст введен верно. Спасибо."
Document.frmExample5a.submit
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<H1>Проверка вводимой информации</H1>
<P>Это упражнение демонстрирует технологию VBScript.</P>
<FORM NAME="frmExample5a">
<TABLE>
<TR>
<TD>Введите свой возраст:</TD>
<TD><INPUT TYPE="Text" NAME="txtAge" SIZE=2></TD>
</TR>
<TR>
<TD><INPUT TYPE="Button" NAME="cmdSubmit" VALUE="Отослать"></TD>
<TD></TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
Как это работает
Основная часть этого сценария -- это программа обработки события OnClick кнопки отправки cmdSubmit. Начинае мы с проверки, ввел ли пользователь вообще что-нибуть в поле, с помощью встроенной функции VBScript Len. Эта функция возвращает длину указанной строки. Ели эта длина равна 0, данные не корректны. Мы сообщаем об этом пользователю и выходим из роцедуры отправки с помощью выражения Exit Sub:
'Проверяем, введена ли информация пользователем.
If (Len(document.frmExample5a.txtAge.value) = 0) Then
MsgBox "Перед отправкой вы долны ввести свой возраст."
Exit Sub
End If
Дальше мыпроверяем, является ли эта информация числом. Встроенная функция VBScript IsNumeric возвращает значение true, если проверяемое значение -- числовая величина. Если нет, мы говорим об этом пользователю и выходим из программы:
'Проверка того, является ли введенная информация числом.
If (Not(IsNumeric(document.frmExample5a.txtAge.value))) Then
MsgBox "В поле возраста необходимо ввести число."
Exit Sub
End If
Последняя проверка заключается в отсеве значений, больших 100 и меньших 0.
'Проверяем, правильно ли введен возраст.
If (document.frmExample5a.txtAge.value < 0) Or _
(document.frmExample5a.txtAge.value > 100) Then
MsgBox "Вы ввели неверный возраст (столько не живут)."
Exit Sub
End If
Вот и все. Познакомившись с этим примером, вы узнали об основных приемах для проверки данных с использованием средств VBScript.
Отправка формы
По сравнению с проверками поцесс отправки выглядит очень простым. В нашем примере мы использовали стандартную кнопку HTML с надписью Отослать, связанную с проседурой обработки, которая проверяет и отсылает содержимое формы.
Код, который нужно было добавить для отправки, показан ниже:
' Если данные корректны, то отправляем их.
MsgBox "Возраст введен верно. Спасибо."
document.frmExample5a.submit
Выражение с функцией MsgBox сообщает пользователю, что введенная информация обработанна. Затем форма отправляет на сервер с помощью метода submit объекта form.