购物推车的设计 购物推车需要三个要素:一个VBScript 5的类class
CartKit,一个多维数组mudCart,一个session变量Session("Cart")。 这个VBScript
类,我们称为CartKit,包含了8个方法,如上表所示。在本文我们只用了ID和Qty,分别表示商品编号和数量。 这样我们就可以用一个二维数组来表达这个推车,象下面这样?
br> 商品编号 商品数量 ID-1 23 ID-3 10 ID-23 6 ID-2
1 然后我们把这个二维数组保存到session变量中就可以了。 购物推车类CartKit的设计 请下载:CartKit.asp CreateCart设计: 请看程序代码: Class
CartKit REM 开始类CartKit的定义 Sub CreateCart() IF IsArray(Session("Cart")) =
false THEN Dim mudCart(19,1) Session("Cart") = mudCart END
IF End
Sub 其中:Session("Cart")保存的就是推车的内容。如果推车不存在,我们就定义一个二维数组mudCart来表达推车,并将它保存到session("Cart")中。 CheckCart设计: 本函数判断Cart是否已经创建。比较简单。 Function
CheckCart() IF IsArray(Session("Cart"))
THEN CheckCart=True ELSE CheckCart=False END IF End
Function CheckItem设计: 请看代码: Function CheckItem(ID) IF CheckCart=True
THEN varMudCart = Session("Cart") FOR i = LBound(varMudCart)TO
UBound(varMudCart) IF varMudCart(i,0) = ID THEN CheckItem=TRUE Exit
Function ELSEIF varMudCart(i,0) $#@60;$#@62; ID
THEN CheckItem=FALSE END IF NEXT END IF End
Function 首先判断推车是否存在。然后将商品的编号ID和购物推车中的商品编号逐一比较。如果有相等的,返回真。否则为假。 AddItem(ID,Qty)设计: 请参考本文的附件CartKit.asp,这里介绍的函数我们把它们封装到一个名为CartKit的class中。下面的代码段首先创建了一个CartKit对象,然后检查推车是否已经存在。如果不存在,就创建推车并新增商品;否则,检查商品编号是否已经存在于Cart中。如果是,就更新数量;否则,新增商品。 Function
AddItem(ID, Qty) Set CartObj =
New CartKit varCartStatus = CartObj.CheckCart IF varCartStatus=false
THEN CartObj.CreateCart mudCart=Session("Cart") mudCart(0,0)=ID mudCart(0,1)=Qty Session("Cart")=mudCart Exit
Function ELSEIF varCartStatus=true THEN IF CartObj.CheckItem(ID) = true
THEN CartObj.UpdateItem ID,Qty ELSEIF cartObj.CheckItem(ID) = false
THEN mudCart = Session("Cart") FOR i = LBound(mudCart) TO
UBound(mudCart) IF mudCart(i,0) = "" THEN mudCart(i,0) = ID
mudCart(i,1) = Qty Session("Cart") = mudCart Exit
Function END IF NEXT END IF END IF End
Function UpdateItem设计: Function UpdateItem(ID, Qty) mudCart =
Session("Cart")
FOR i = LBound(mudCart) TO UBound(mudCart) IF
mudCart(i,0) = ID THEN mudCart(i,1) =
Qty Session("cart")=mudCart Exit Function END
IF NEXT End Function ViewItem设计: Function
ViewItem() mudCart=Session("Cart") IF isArray(mudCart)
THEN %$#@62; $#@60;table$#@62; $#@60;tr$#@62; $#@60;td$#@62;Item
Name$#@60;/td$#@62; $#@60;td$#@62;Item
Quantity$#@60;/td$#@62; $#@60;td$#@62;$#@60;/td$#@62; $#@60;/tr$#@62; $#@60;% FOR
i = LBound(mudCart) TO UBound(mudCart) IF mudCart(i,0) $#@60;$#@62; ""
THEN %$#@62; $#@60;tr$#@62; $#@60;td$#@62;$#@60;%=%$#@62;$#@60;/td$#@62;
$#@60;% Response.Write "Item ID: " & mudCart(i,0) &
"$#@60;--" Response.Write "$#@60;BR$#@62;" Response.Write "Item Qty: "
& mudCart(i,1) & "$#@60;--" Response.Write "$#@60;BR$#@62;" END
IF NEXT ELSEIF isArray(mudCart) = False THEN Response.Write "No item in
your cart!" Response.Write "$#@60;BR$#@62;" Response.Write "Y don’t you do
shop!" END IF End Function RemoveItem(ID)设计: Function
RemoveItem(ID) mudCart=Session("Cart") ’Find the Postion / Index of given
ID. For i = LBound(mudCart) TO Ubound(mudCart) IF mudCart(i,0) = ID
THEN Pos=i Exit For END IF Next ’Delete Process... FOR i
= Pos TO UBound(mudCart) - 1 IF Not mudCart(i,0) = ""
THEN mudCart(i,0) = mudCart(i+1,0) END IF Next End
Function End Class REM
结束类CartKit的定义 proxy.asp的全部代码 请下载:proxy.asp 使用本文购物推车对象的一个例子 请下载:example.htm