
|
|
Completed Code for Creating Dependent Select Objects With ASP Article:
<% @LANGUAGE="VBSCRIPT" %>
<%
Option Explicit
Response.Buffer = True
On Error Resume Next
Dim oConn, oRS, oCmd
Dim aProducts, aTypes, aVendors
Dim iCount
Dim y
Set oConn = Server.CreateObject("ADODB.Connection")
Set oCmd = Server.CreateObject("ADODB.Command")
Set oRS = Server.CreateObject("ADODB.Recordset")
oConn.Open
"Provider=SQLOLEDB;SERVER=(local);DATABASE=product;UID=sa;PWD=jmbutler"
oCmd.ActiveConnection = oConn
oCmd.CommandType = 4
oCmd.CommandText = "sp_GetProductData"
oRS.Open oCmd,,2,3,4
aTypes = oRS.GetRows
Set oRS = oRS.NextRecordset
aVendors = oRS.GetRows
Set oRS = oRS.NextRecordset
aProducts = oRS.GetRows
oRS.Close
Set oRS = Nothing
Set oCmd = Nothing
oConn.Close
Set oConn = Nothing
Response.Write("<HTML>" & chr(13))
Response.Write("<HEAD>" & chr(13))
Response.Write("<TITLE>Dependent HTML Select Boxes
Example</TITLE>" & chr(13))
Response.Write("<STYLE>" & chr(13))
Response.Write(" BODY {font-family: arial; font-size: 12pt; backcolor:
#FFFFFF; text: #00000}" & chr(13))
Response.Write(" SELECT {font-family: arial; font-size: 12pt}" & chr(13))
Response.Write("</STYLE>" & chr(13))
Response.Write("<SCRIPT LANGUAGE=" & chr(34) & "JAVASCRIPT" & chr(34)
& ">" & chr(13))
Response.Write("function vendor(iID, sName, iTypeID) {" & chr(13))
Response.Write(" this.ID = iID;" & chr(13))
Response.Write(" this.Name = sName;" & chr(13))
Response.Write(" this.TypeID = iTypeID;" & chr(13))
Response.Write("}" & chr(13))
Response.Write("function product(iID, sTitle, iTypeID, iVendorID) {" &
chr(13))
Response.Write(" this.ID = iID;" & chr(13))
Response.Write(" this.Title = sTitle;" & chr(13))
Response.Write(" this.TypeID = iTypeID;" & chr(13))
Response.Write(" this.VendorID = iVendorID;" & chr(13))
Response.Write("}" & chr(13))
Response.Write(chr(13))
Response.Write("function getVendors() {" & chr(13))
Response.Write(" var sSelect = '<SELECT NAME=cmbVendors
OnChange=" & chr(34) & "getProducts();" & chr(34) & "><OPTION
VALUE=0 SELECTED></OPTION>';" & chr(13))
Response.Write(" var iTypeID = document.frmProducts.cmbTypes.value;" &
chr(13))
Response.Write(" for (var x=1; x<aVendors.length; x++) {" & chr(13))
Response.Write(" if (aVendors[x].TypeID == iTypeID) {" & chr(13))
Response.Write(" sSelect = sSelect + '<OPTION VALUE=' +
aVendors[x].ID + '>' + aVendors[x].Name + '</OPTION>'" &
chr(13))
Response.Write(" }" & chr(13))
Response.Write(" }" & chr(13))
Response.Write(" sSelect = sSelect + '</SELECT>';" & chr(13))
Response.Write(" document.all['Vendors'].innerHTML = " & chr(34) &
chr(34) & ";" & chr(13))
Response.Write(" document.all['Vendors'].innerHTML = sSelect;" & chr(13))
Response.Write("}" & chr(13))
Response.Write(chr(13))
Response.Write("function getProducts() {" & chr(13))
Response.Write(" var sSelect = '<SELECT
NAME=cmbProducts><OPTION VALUE=0
SELECTED></OPTION>';" & chr(13))
Response.Write(" var iTypeID = document.frmProducts.cmbTypes.value;" &
chr(13))
Response.Write(" var iVendorID =
document.frmProducts.cmbVendors.value;" & chr(13))
Response.Write(" for (var x=1; x<aProducts.length; x++) {" & chr(13))
Response.Write(" if (aProducts[x].TypeID == iTypeID &&
aProducts[x].VendorID == iVendorID) {" & chr(13))
Response.Write(" sSelect = sSelect + '<OPTION VALUE=' +
aProducts[x].ID + '>' + aProducts[x].Title + '</OPTION>'" &
chr(13))
Response.Write(" }" & chr(13))
Response.Write(" }" & chr(13))
Response.Write(" sSelect = sSelect + '</SELECT>';" & chr(13))
Response.Write(" document.all['Products'].innerHTML = " & chr(34) &
chr(34) & ";" & chr(13))
Response.Write(" document.all['Products'].innerHTML = sSelect;" & chr(13))
Response.Write("}" & chr(13))
Response.Write(chr(13))
Response.Write("var aVendors = new Array;" & chr(13))
Response.Write("var aProducts = new Array;" & chr(13))
Response.Write(chr(13))
iCount = 1
For y = 0 To uBound(aVendors,2)
Response.Write("aVendors[" & iCount & "] = new vendor(" &
aVendors(0,y) & ",'" & aVendors(1,y) & "'," & aVendors(2,y) & ");" &
chr(13))
iCount = iCount + 1
Next
Response.Write(chr(13))
iCount = 1
For y = 0 To uBound(aProducts,2)
Response.Write("aProducts[" & iCount & "] = new product(" &
aProducts(0,y) & ",'" & aProducts(1,y) & "'," & aProducts(2,y) & "," &
aProducts(3,y) & ");" & chr(13))
iCount = iCount + 1
Next
Response.Write("</SCRIPT>" & chr(13))
Response.Write("</HEAD>" & chr(13))
Response.Write("<BODY>" & chr(13))
Response.Write("<FORM NAME=frmProducts ACTION=products.asp
METHOD=POST>" & chr(13))
Response.Write("Product Type:<BR>" & chr(13))
Response.Write("<SELECT NAME=cmbTypes OnChange=" & chr(34) &
"getVendors();" & chr(34) & ">" & chr(13))
Response.Write(" <OPTION VALUE=0 SELECTED></OPTION>"
& chr(13))
For y = 0 To uBound(aTypes,2)
Response.Write(" <OPTION VALUE=" & aTypes(0,y) & ">" &
aTypes(1,y) & "</OPTION>" & chr(13))
Next
Response.Write(" </SELECT>" & chr(13))
Response.Write("<BR>" & chr(13))
Response.Write("<BR>" & chr(13))
Response.Write("Vendor:<BR>" & chr(13))
Response.Write("<SPAN ID=Vendors>" & chr(13))
Response.Write("<SELECT NAME=cmbVendors OnChange=" & chr(34) &
"getProducts();" & chr(34) & ">" & chr(13))
Response.Write(" <OPTION VALUE=0 SELECTED></OPTION>"
& chr(13))
Response.Write("</SELECT>" & chr(13))
Response.Write(" </SPAN>" & chr(13))
Response.Write("<BR>" & chr(13))
Response.Write("<BR>" & chr(13))
Response.Write("Products:<BR>" & chr(13))
Response.Write("<SPAN ID=Products>" & chr(13))
Response.Write("<SELECT NAME=cmbProducts>" & chr(13))
Response.Write(" <OPTION VALUE=0 SELECTED></OPTION>"
& chr(13))
Response.Write("</SELECT>" & chr(13))
Response.Write(" </SPAN>" & chr(13))
Response.Write("</FORM>" & chr(13))
Response.Write("</BODY>" & chr(13))
Response.Write("</HTML>" & chr(13))
%>
email this code sample to a colleague
|
|
|
|
|
|
|
|
|
|
|
|