| [ASP]共享我改写的购物车的[session部分]代码
|
发表于:2005-07-28
阅读:次
|
[ASP]共享我改写的购物车的[session部分]代码 - IdeaGrace | Web开发 | ASP,IdeaGrace,web,开发,技术,交流,教程 - http://www.ideagrace.com/
都是过程和函数的方式。
原来那个是类的形式,我比较菜,不会用,都改成过程和函数的了。
原来那个是固定大小数组的,不爽,我改成动态数组的了。买多少东西都行啊。
原来那个添加商品的时候,如果商品已经存在,它是直接更新成新的数量的,
是不是不符合习惯啊,我改成在原来数量上加上新数量了。
使用方法:
可以把下面的代码放在一个asp文件里,include一下。
使用方法范例:
===============================
<%
myAction=trim(request("myAction"))
select case myAction
case "addProduct"
ID=trim(request("ID"))
quantity=trim(request("quantity"))
if quantity="" then
quantity=1
end if
call AddItem(ID,quantity)
case "addManyProduct"
for i=1 to request("ID").count
myNumber=request("quantity")(i)
If myNumber>0 Then
call AddItem(CLng(request("ID")(i)),CLng(myNumber))
End IF
next
case "modifyNumber"
for i=1 to request("ID").count
myNumber=request("quantity")(i)
If myNumber<=0 Then
myNumber=1
End IF
call UpdateItem(CLng(request("ID")(i)),CLng(myNumber))
next
case "deleteProduct"
ID=trim(request("ID"))
call RemoveItem(Clng(ID))
case "clearCart"
Session("Cart")=NULL
end select
'session.Abandon
call showCart()
%>
===================================
<%
Sub CreateCart()
If IsArray(Session("Cart")) = False Then
Dim aryCart()
Redim aryCart(1,0)
Session("Cart") = aryCart
End If
End Sub
Function CheckCart()
If IsArray(Session("Cart")) Then
CheckCart = True
Else
CheckCart = False
End If
End Function
Function CheckItem(ID)
Dim aryCart,findFlag,i
If CheckCart = True Then
aryCart = Session("Cart")
findFlag=False
For i = LBound(aryCart,2) To UBound(aryCart,2)
If CLng(aryCart(0,i)) = ID Then
findFlag=True
Exit For
End If
Next
CheckItem = findFlag
End If
End Function
SUB RemoveItem(ID)
ID=Clng(ID)
IF NOT CheckItem(ID) Then
Exit SUB
End If
dim i,intPos,aryCart,newSize
aryCart = Session("Cart")
For i = LBound(aryCart,2) To UBound(aryCart,2)
If Clng(aryCart(0,i)) = ID Then
intPos = i
Exit For
End If
Next
For i = intPos To UBound(aryCart,2) - 1
If Not aryCart(0,i) = "" Then
aryCart(0,i) = aryCart(0,i+1)
aryCart(1,i) = aryCart(1,i+1)
End If
Next
newSize=UBound(aryCart,2)-1
redim preserve aryCart(1,newSize)
Session("Cart") = aryCart
End SUB
SUB UpdateItem(ID,Num)
ID=Clng(ID)
Num=Clng(Num)
dim aryUpdateCart,i
aryUpdateCart = Session("Cart")
For i = LBound(aryUpdateCart,2) To UBound(aryUpdateCart,2)
If CLng(aryUpdateCart(0,i)) = ID Then
aryUpdateCart(1,i) = Num
Session("Cart") = aryUpdateCart
Exit For
End If
Next
End SUB
SUB AddItem(ID,Num)
ID=Clng(ID)
Num=Clng(Num)
Dim btnCartStatus,aryAddCart,newSize,i
btnCartStatus = CheckCart
If btnCartStatus = False Then
CreateCart
aryAddCart = Session("Cart")
aryAddCart (0,0) = ID
aryAddCart (1,0) = Num
Session ("Cart") = aryAddCart
Exit SUB
ElseIf btnCartStatus = True Then
If CheckItem(ID) = True Then
aryAddCart = Session("Cart")
For i = LBound(aryAddCart,2) To UBound(aryAddCart,2)
If Clng(aryAddCart(0,i)) = ID Then
aryAddCart(1,i) = aryAddCart(1,i)+Num
Session("Cart") = aryAddCart
Exit For
End If
Next
ElseIf CheckItem(ID) = False Then
aryAddCart = Session("Cart")
newSize=UBound(aryAddCart,2)+1
redim preserve aryAddCart(1,newSize)
aryAddCart(0,newSize) = ID
aryAddCart(1,newSize) = Num
Session("Cart") = aryAddCart
Exit SUB
End If
End If
End SUB
Sub showCart()
If CheckCart=False Then
response.write "您的购物车里没有商品"
Exit Sub
End if
aryCart=Session("Cart")
dim productCount,moneyCount
'========这里根据自己的需要写吧==========
End Sub
%>
喜欢本文?那就在线订阅更多文章更新吧!
加入技术论坛讨论
访问IdeaGrace开发者博客
浏览更多java开源项目
IdeaGrace开发者Wiki
更好的浏览体验,
|
|
|
|