This action might not be possible to undo. Are you sure you want to continue?
(<!-- and -->). Below is our example script as it appears with the addition of the comment tags: <HTML> <HEAD> <TITLE>Working With VBScript</TITLE> <SCRIPT LANGUAGE="VBScript"> <!-MsgBox "Welcome to my Web page!" --> </SCRIPT> </HEAD> </HTML> Now, when a browser that does not support VBScript processes this page, it will view your script as a comment and simply ignore it. Working with Variables A variable is a named location in computer memory that you can use for storage of data during the execution of your scripts. You can use variables to:
• • •
Store input from the user gathered via your web page Save data returned from functions Hold results from calculations
An Introduction to Variables Let's look at a simple VBScript example to clarify the use of variables. Sub cmdVariables_OnClick Dim Name Name = InputBox("Enter your name: ") MsgBox "The name you entered was " & Name End Sub The first line of this example defines a sub procedure associated with the click event of a command button named cmdVariables.
On the second line we declare a variable named Name. We are going to use this variable to store the name of the user when it is entered. The third line uses the InputBox function to first prompt for, and then return, the user's name. You will see more of the InputBox function later in this tutorial. The name it returns is stored in the Name variable. The fourth line uses the MsgBox function to display the user's name. Finally, the sub procedure completes on line five. Exactly how, and where, variables are stored is not important. What you use them for, and how you use them is important. That is what we will be looking at next. Declaring Variables There are two methods for declaring variables in VBScript, explicitly and implicitly. You usually declare variables explicitly with the Dim statement: Dim Name This statement declares the variable Name. You can also declare multiple variables on one line as shown below, although it is preferable to declare each variable separately: Dim Name, Address, City, State Variables can be declared implicitly by simply using the variable name within your script. This practice is not recommended. It leads to code that is prone to errors and more difficult to debug. You can force VBScript to require all variables to be explicitly declared by including the statement Option Explicit at the start of every script. Any variable that is not explicitly declared will then generate an error. Variable Naming Rules When naming variables the following rules apply:
• • •
They must begin with an alphabetic character They cannot contain embedded periods They must be unique within the same scope. There is more on scopes later in this lesson They must be no longer than 255 characters
Variants and Subtypes VBScript has a single data type called a variant. Variants have the ability to store different types of data. The types of data that a variant can store are referred to as subtypes. The table below describes the subtypes supported by VBScript.
Description of Uses for Each Subtype Integer numbers between 0 to 255
Boolean True and False Currency Monetary values Date Double Empty Error Integer Long Object Null Single String Date and time Extremely large numbers with decimal points The value that a variant holds before being used An error number Large integers between -32,768 and 32,767 Extremely large integers (-2,147,483,648 and 2,147,483,647) Objects No valid data Large numbers with decimal points Character strings
Assigning Values You assign a value to a variable by using the following format: Variable_name = value The following examples demonstrate assigning values to variables: Name = "Larry Roof" HoursWorked = 50 Overtime = True
Scope of Variables The scope of a variable dictates where it can be used in your script. A variable's scope is determined by where it is declared. If it is declared within a procedure, it is referred to as a procedure-level variable and can only be used within that procedure. If it is declared outside of any procedure, it is a script-level variable and can be used throughout the script. The example below demonstrates both script-level and procedure-level variables. <SCRIPT> Dim counter Sub cmdButton_onClick Dim temp End Sub </SCRIPT> The variable counter is a script-level variable and can be utilized throughout the script. The variable temp exists only within the cmdButton_onClick sub-procedure. Constants VBScript does not provide support for constants, such as you find in other programming languages. You can work around this by assigning values to variables that you have defined as shown in the example below. Here, TAX_RATE is our constant. <SCRIPT> Dim TAX_RATE TAX_RATE = .06 Function CalculateTaxes CalculateTaxes = CostOfGoods * TAX_RATE End Function </SCRIPT> Arrays The VBScript language provides support for arrays. You declare an array using the Dim statement, just as you did with variables: Dim States(50)
The statement above creates an array with 51 elements. Why 51? Because VBScript arrays are zero-based, meaning that the first array element is indexed 0 and the last is the number specified when declaring the array. You assign values to the elements of an array just as you would a variable, but with an additional reference (the index) to the element in which it will be stored: States(5) = "California" States(6) = "New York" Arrays can have multiple dimensions-VBScript supports up to 60. Declaring a two dimensional array for storing 51 states and their capitals could be done as follows: Dim StateInfo(50,1) To store values into this array you would then reference both dimensions. StateInfo(18,0) = "Michigan" StateInfo(18,1) = "Lansing" VBScript also provides support for arrays whose size may need to change as the script is executing. These arrays are referred to as dynamic arrays. A dynamic array is declared without specifying the number of elements it will contain: Dim Customers() The ReDim statement is then used to change the size of the array from within the script: ReDim Customers(100) There is no limit to the number of times an array can be re-dimensioned during the execution of a script. To preserve the contents of an array when you are redimensioning, use the Preserve keyword: ReDim Preserve Customers(100) Objects and VBScript Objects, both in the form of Java applets and ActiveX controls, enhance the functionality that is provided with HTML. By using VBScript you can extend the capabilities of these controls, integrating and manipulating them from within your scripts. In this lesson we will look at how you can utilize the power of objects with VBScript. Scripting with objects involves two steps:
Adding the object to your web page using HTML Writing script procedures to respond to events that the object provides
Adding Objects to Your Web Pages Since this is a VBScript tutorial, rather than an HTML tutorial, we will offer only a limited discussion of how to add an object to a web page. Objects, whether they're Java applets or ActiveX controls are added to a page with the <OBJECT> tag. The properties, or characteristics, of the object are configured using the <PARAM> tag. Typically you will see an object implemented using a single <OBJECT> tag along with several <PARAM> tags. The following HTML code demonstrates how an ActiveX control might appear when added to a page: <OBJECT ID="lblTotalPay" WIDTH=45 HEIGHT=24 CLASSID="CLSID:978C9E23-D4B0-11CE-BF2D-00AA003F40D0"> <PARAM NAME="ForeColor" VALUE="0"> <PARAM NAME="BackColor" VALUE="16777215"> <PARAM NAME="Caption" VALUE=""> <PARAM NAME="Size" VALUE="1582;635"> <PARAM NAME="SpecialEffect" VALUE="2"> <PARAM NAME="FontHeight" VALUE="200"> <PARAM NAME="FontCharSet" VALUE="0"> <PARAM NAME="FontPitchAndFamily" VALUE="2"> <PARAM NAME="FontWeight" VALUE="0"> Linking VBScript with Objects Once you have added a control to your web page, it can be configured, manipulated and responded to through its properties, methods and events. Properties are the characteristics of an object. They include items like a caption, the foreground color and the font size. Methods cause an object to perform a task. Events are actions that are recognized by an object. For instance, a command button recognizes an onclick event. Note The Script Wizard found in the Microsoft ActiveX Control Pad can be used to identify events provided by a control, and to generate script to respond to these events. For the most part, you will be focusing on properties and events. An example of setting properties for a label control is shown in the following example. <SCRIPT LANGUAGE="VBScript"> Sub cmdCalculatePay_onClick
Dim HoursWorked Dim PayRate Dim TotalPay HoursWorked = InputBox("Enter hours worked: ") PayRate = InputBox("Enter pay rate: ") TotalPay = HoursWorked * PayRate lblTotalPay.caption = TotalPay End Sub </SCRIPT> The caption property of the label control, lblTotalPay, is set equal to the results of our calculation with the script line: document.frmPayrate.lblTotalPay.caption = TotalPay Object properties are referenced within your scripts using the same format shown in Exercise 2. Controlling Your VBScript Routines VBScript allows you to control how your scripts process data through the use of conditional and looping statements. By using conditional statements you can develop scripts that evaluate data and use criteria to determine what tasks to perform. Looping statements allow you to repetitively execute lines of a script. Each offers benefits to the script developer in the process of creating more complex and functional web pages. Conditional Statements VBScript provides two forms of conditional statements: If..Then..Else Select..Case If..Then..Else The If..Then..Else statement is used, first to evaluate a condition to see if it is true or false and second, depending upon the condition, to execute a statement or set of statements. Rather than discussing an If statement in theory, we will examine some examples to see how they work. The simplest version of an If statement is one that contains only a condition and a single statement:
If AmountPurchased > 10000 Then DiscountAmount = AmountPurchased * .10 In this example statement the condition is: If AmountPurchased > 10000 which simply checks to see if the contents of the variable AmountPurchased is greater than ten thousand. If it is, the condition is true. In this simple version of the If statement when the condition is true the following statement is executed: DiscountAmount = AmountPurchased * .10 Next we will look at a more complicated version of the If statement. In this version we will perform a series of statements when the condition is true: If AmountPurchased > 10000 Then DiscountAmount = AmountPurchased * .10 Subtotal = AmountPurchased - DiscountAmount End If In this form of the If statement, one or more statements can be executed when the condition is true, by placing them between the If statement on top and the End If statement on the bottom. The next form of the If statement uses the If..Then..Else format. This version of the If statement differs from the two previous versions in that it will perform one set of statements if the condition is true and another set when the condition is false: If AmountPurchased > 10000 Then DiscountAmount = AmountPurchased * .10 Subtotal = AmountPurchased - DiscountAmount Else HandlingFee = AmountPurchased *.03 Subtotal = AmountPurchased + HandlingFee End If In this example when the condition is true, that is the customer's order is over $10,000, they receive a 10% discount. When the order is under $10,000, they are charged a 3% handling fee. The final version of the If statement that we will look at is the If..Then..Else If. In this form the If statement checks each of the conditions until it either finds one that is true or an Else statement:
If AmountPurchased > 10000 Then DiscountAmount = AmountPurchased * .10 Subtotal = AmountPurchased - DiscountAmount Else If AmountPurchased > 5000 Then DiscountAmount = AmountPurchased * .05 Subtotal = AmountPurchased - DiscountAmount Else HandlingFee = AmountPurchased *.03 Subtotal = AmountPurchased + HandlingFee End If In this example the customer receives a 10%discount for orders over $10000, a 5% discount for orders over $5000 and a handling fee of 3% for orders under $5000. As you see, VBScript offers you plenty of options when it comes to If statements. Select Case The Select Case statement provides an alternative to the If..Then..Else statement, providing additional control and readability when evaluating complex conditions. It is well suited for situations where there are a number of possible conditions for the value being checked. Like the If statement the Select Case structure checks a condition, and based upon that condition being true, executes a series of statements. The syntax of the Select Case statement is: Select Case condition Case value Case value ... Case Else End Select For example, the following Select statement assigns different shipping fees based upon the State where the order is being sent: Select Case Document.frmOrder.txtState.Value
Case "California" ShippingFee= .04 Case "Florida" ShippingFee = .03 Case Else ShippingFee = .02 End Select The Select Case statement checks each of the Case statements until it finds one that will result in the condition being true. If none are found to be true, it executes the statements within the Case Else. Note Even though it is not required, always include a Case Else when working with Select Case statements to process conditions that you may not have considered possible. For these conditions you can display something as simple as a message dialog to inform you that a branch was executed that you hadn't planned for. Using VBScript with Forms As the popularity of web page forms increase, so does the need to be able to validate data before the client browser submits it to the web server. As a scripting language, VBScript is well suited for this task. Once the form has been validated, the same script can be used to forward the data on to the server. In this lesson we will look at both the process of validating and submitting forms. Validating Your Forms The process of validating forms involves checking the form to see if:
All of the required data is proved The data provided is valid
Meticulous data validation scripts can be tedious to code but are well worth their return in verifying the quality of the data. The validation example that we will be examining does not contain anything new in the way of VBScript. We are simply using the elements that we have learned in the previous lessons in a new way. Before reading any further you may find if beneficial to ponder how you would validate an HTML form using the VBScript techniques that you have learned. Okay, are you through pondering? Let's look at an example to give you an idea of what is possible when it comes to validating forms.
Checking Form Input This example is pretty simple. It has a single field in which the user can enter their age and a single command button that is used to submit their age to the server. A copy of this example can be found in exam_5a.htm. <HTML> <HEAD> <TITLE>Working With VBScript: Example 5a</TITLE> <SCRIPT LANGUAGE="VBScript"> <!-- Instruct non-IE browsers to skip over VBScript modules. Option Explicit Sub cmdSubmit_OnClick ' Check to see if the user entered anything. If (Len(document.frmExample5a.txtAge.value) = 0) Then MsgBox "You must enter your age before submitting." Exit Sub End If ' Check to see if the user entered a number. If (Not(IsNumeric(document.frmExample5a.txtAge.value))) Then MsgBox "You must enter a number for your age." Exit Sub End If ' Check to see if the age entered is valid. If (document.frmExample5a.txtAge.value < 0) Or _ (document.frmExample5a.txtAge.value > 100) Then MsgBox "The age you entered is invalid." Exit Sub End If ' Data looks okay so submit it.
MsgBox "Thanks for providing your age." document.frmExample5a.submit End Sub --> </SCRIPT> </HEAD> <BODY> <H1>A VBScript Example on Variables</H1> <P> This example demonstrates validation techniques in VBScript. </P> <FORM NAME="frmExample5a"> <TABLE> <TR> <TD>Enter your age:</TD> <TD><INPUT TYPE="Text" NAME="txtAge" SIZE="2"> <TR> <TD><INPUT TYPE="Button" NAME="cmdSubmit" VALUE="Submit"></TD> <TD></TD> </TR> </TABLE> </FORM> </BODY> </HTML> How It Works The heart of this validation script is found in the click event procedure for the cmdSubmit command button. We start by checking if the user entered anything at all into the field using VBScript's Len function. This function returns the length of a string. If the length is 0, the data is invalid. We inform the user and exit the submit procedure via the Exit Sub statement: ' Check to see if the user entered anything.
If (Len(document.frmExample5a.txtAge.value) = 0) Then MsgBox "You must enter your age before submitting." Exit Sub End If Next we check to see if what the user entered is a numeric value. The VBScript function IsNumeric returns a true value when it is a number. If not, we tell the user and exit: ' Check to see if the user entered a number. If (Not(IsNumeric(document.frmExample5a.txtAge.value))) Then MsgBox "You must enter a number for your age." Exit Sub End If Our final check involves verifying that the age they entered seems reasonable for our environment. I have determined that no age less than 0 or greater than 100 is acceptable. Using an If..Then statement we can check the value of the input field against this criteria: ' Check to see if the age entered is valid. If (document.frmExample5a.txtAge.value < 0) Or _ (document.frmExample5a.txtAge.value > 100) Then MsgBox "The age you entered is invalid." Exit Sub End If That's it. While this example is by no means the most detailed validation script you will encounter it provides you with a basis of what is possible with VBScript. Submitting Your Forms Compared to validation, the process of submitting a form is simple. In our example we've used a normal HTML button with the Submit caption that is tied to an event procedure that both validates and at the same time submits the form. In Chapter 5, we've demonstrated how to use function MyButton_onSubmit, as an alternative. The code that we would have to add to our previous example to submit the form is shown below: ' Data looks okay so submit it. MsgBox "Thanks for providing your age."
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue listening from where you left off, or restart the preview.