В этом упражнении мы добавляем сценарий для проверки и отправки содержимого формы, которую мы создали на предыдущих уроках.
Упражнение 5: как проверить и отправить форму
В этом упражнении вы создадите документ HTML, который содержит сценарий, получающий данные с Web-страницы, выполняет вычисления и выводит результаты обратно на страницу. Кроме того, он предоставляет цены на товарыи вычисляет размер скидок в зависимости от размера заказа. И, наконец, он проверяет данные и отправляет заказ вам по почте.
Исследование документа HTML
Откройте файл p0005.txt в текстовом редакторе. Это весь код HTML этого упражнения. Заметьте новую кнопку cmdSubmit, которая будет использоваться для отправки формы по почте после проверки. Загрузите файл в Internet Explorer. При этом страница должна выглядить так.
Теперь добавьте сценарий, который будет осуществлять проверку и отправку вашей формы. Полную версию этой части упражнения вы можете найти в файле p0005a.htm.
<SCRIPT LANGUAGE="VBScript">
<!--Для работы с несовместимым броузерами
Option Explicit
Dim Cost 'Цена продукта
Dim Qty 'Количество заказанного товара
Cost=0
Sub Button1_OnClick()
Dim AD ' AmountofDiscount
Dim AT ' AmountofTax
Dim DISCOUNT_LIMIT
Dim DISCOUNT_RATE
Dim SB 'SubtotalBefore
Dim SA 'SubtotalAfter
Dim TAX_RATE
Dim TC 'TotalCost
'Проводит проверку корректности перед любыми действиями. Хотя это не
'всё, что мы можем проверить, остальное можно сделать по образу и подобию.
If (Len(document.all.Edit1.value) = 0) Then
MsgBox "Вы должны ввести количество товара."
Exit Sub
End If
If (Not IsNumeric(document.all.Edit1.value)) Then
MsgBox "Вы должны ввести число."
Exit Sub
End If
If (Cost = 0) Then
MsgBox "Вы должны выбрать один из видов товара."
Exit Sub
End If
'Определение констант
DISCOUNT_LIMIT=1000
DISCOUNT_RATE=0.10
TAX_RATE=0.06
'Вычисление подытога
Qty=document.all.Edit1.value
SB=Qty*Cost
'Проверка на минимальный объем покупок
If (SB>DISCOUNT_LIMIT) Then AD=SB*DISCOUNT_RATE Else AD=0
SA=SB-AD
'Вычисление налога и итога
AT=SA*TAX_RATE
TC=SA+AT
'Отображение результатов
document.all.Edit3.value=CStr(SB) & " $"
document.all.Edit4.value=CStr(AD) & " $"
document.all.Edit5.value=CStr(SA) & " $"
document.all.Edit6.value=CStr(AT) & " $"
document.all.Edit7.value=CStr(TC) & " $"
End sub
Sub ListBox_onchange()
Dim intMnt
intMnt=CInt(document.all.ListBox.value)
Select Case intMnt
Case 0
Cost=0
Case 1
Cost=645
Case 2
Cost=710
Case 3
Cost=320
Case 4
Cost=430
Case 5
Cost=940
Case 6
Cost=255
Case 7
Cost=150
End Select
document.all.Edit2.value=CStr(Cost) & " $"
End sub
Sub cmdSubmit_onClick()
'Отсылает данные на обработку
MsgBox "Все введено правильно. Отправляю."
Document.frmMnt.submit
End sub
-->
</SCRIPT>
Сохраните файл и загрузите его в IE. Ничего не вводя в поле Количество, желкните на кнопке Вычисление цены. Появится такое диалоговое окно.
Введите какую-либо букву в поле Количество, желкните на кнопке Вычисление цены. Появится диалоговое окно.
Введите значение 10 в поле Количество и снова желкните на кнопке Вычисление цены. На этот раз вы увидите такое диалоговое окно.
И, наконец, выберите товар из выпадающего списка. Например самый дорогой монитор или самый большой. Последовательно нажав кнопки Вычисление цены и Отправить данные, вы получит е такой результат.
Как это работает
Сценарий на этой странице состоит из двух частей. Одна из них проверят содержимое формы, а другая отправляет форму на сервер.
Проверка формы
Проверка нашей формы делается с помощью программы обработки события нажатия кнопки. Вы должны отметить, что этот сценарий не притендует на серьезное приложение, это всего лишь пример того, как можно осуществить проверку данных.
Мы начинаем с проверки длины содержимого поля Количество для выяснения, ввел ли пользователь хоть какую-нибуть информацию в это поле. Для этого лучше всего подходит встроенная функция VBScript Len. Если выясняется, что ее длина равна 0, то программа сообщает об этом пользователю и заканчивает работу.
Дальше мы проверяем тип содержимого поля Количество для выяснения, является ли оно числом. Для этого используется встроенная функция VBScript IsNimeric. Кроме того, заказ не может быть выполнен, если неизвестно, какой товар необходим, так что затем мы проверяет содержимое выбранного элемента выпадающего списка.
Если данные прошли все проверки, то выполняются вычисления и отображается результат.
Отправка формы
Отправка формы выполняется с помощью программы обработки события, связанной кнопкой cmdSubmit. Когда пользователь щелкает на этой кнопке, появляется сообщение о том, что заказ отправлен.
ПРИМЕЧАНИЕ Обычно обе эти функции -- проверка и отправка -- выполняются одной программой. Здесь она разделена на две для лучшего понимания.
Резюме
Вот и закончились занятия по VBScript. За это небольшое время мы рассмотрели основы использования VBScript на Web-странице. Мы начали с простого примера, который просто отображал окно сообщения, и построили из него приложение, которое принимает, обрабатывает, показывает проверяет и отправляет данные. Что еще нужно? Вместе с приложением и примерами эти уроки помогут вам при создании ваших собственных приложений. Вы можете использовать для этого полностью или частично примеры из книги издательства Piter-Press. Изучайте новые приемы там, где только можно. Написание сценариев, как и любое дело, требует опыта, настойчивости и старания.