自创的简单购物车类(asp)

最近接了个业务,由于牵涉到在线购物,于是找了以前的文档,发现以前做过类似的东西,就是关于购物车的东东,呵呵,放这里共享一下,或许对很多人都有用

'购物车类
'使用时 定义 : Set gwc = New ZLBuy
'作者:coos    (qq:52590565,有兴趣可以交流,转载请注明出处)
'完成时间:2008-04-11
Class ZLBuy
Private TempCount     '定义清单个数
Private TempUser     '定义用户ID
Private i      '定义计数器

Private Sub Class_Initialize()
  Response.Cookies("SSN").Expires=Date + 1
  UserID=Session("username")
end Sub

Private Sub Class_Terminate()
end Sub

'*******设置/获取用户ID********
Public Property Get UserID
  UserID=TempUser
End Property

Public Property Let UserID(Byval Value)
  Dim uid
  If Len(Value)=0 Then
   Randomize
   uid=Fix((9999-1000)*Rnd())+1
   uid=Cstr(Hour(Time)) & Cstr(Minute(Time)) & Cstr(Second(Time))  & uid
   TempUser=uid
  else
   TempUser=Value
  end if
  Response.Cookies("SSN")("User")=TempUser
End Property
'**********************************
'*****操作cookie*****
'********获取物品种类数量*********
Public Function GetCount()
  if Len(Request.Cookies("SSN")("Count"))=0 then
   GetCount=0
  else  
   GetCount=Cint(Request.Cookies("SSN")("Count"))
  end if
End Function

'*************货品购物车显示***************
'*********获取货品信息********
Public Function Items(ID,Col)
If ID>=0 Then
  Select Case Col
   Case "id"
    Items=ProductID(ID)
   Case "num"
    Items=Count(ID)
  End Select
End If
End Function

'*********获取货品ID********
Private Function ProductID(ID)
  Dim myArry
  myArry=Split(Request.Cookies("SSN")("ProductsID") & ",",",")
  ProductID=myArry(ID)
End Function

'*********获取货品数量********
Private Function Count(ID)
  Dim myArry
  myArry=Split(Request.Cookies("SSN")("ProductsNum") & ",",",")
  count=myArry(ID)  
End Function
'******************************************
'**********增加货品*********
Public Sub Add(Pid)
  Dim Parry,PnumArry
  Parry=Split(Request.Cookies("SSN")("ProductsID") & "," ,",")
  Pnumarry=Split(Request.Cookies("SSN")("ProductsNum") & "," ,",")
  For i=0 To Ubound(Parry)-1
   if Parry(i)=Pid then
    PnumArry(i)=Cint(PnumArry(i)) + 1
    Response.Cookies("SSN")("ProductsNum")=ArryToStr(Pnumarry,",")
    Exit Sub
   End if
  Next
  Response.Cookies("SSN")("ProductsID")=Request.Cookies("SSN")("ProductsID") & "," & Pid
  Response.Cookies("SSN")("ProductsNum")=Request.Cookies("SSN")("ProductsNum") & ",1"
  Response.Cookies("SSN")("Count")=Cint(Request.Cookies("SSN")("Count"))+1
End Sub

'**********购买*********
'这里我调用了数据库的操作,其实也就是一条插入语句,读者可以自己更改一下
Public Sub Buy()
  For i=0 To Count -1
   DB.Buy Seesion("uid"),Request.Cookies("Pid")(Cstr(i)),Request.Cookies("Pcount")(Cstr(i))
  Next
End Sub

'***********删除某物品*********
Public Sub Del(ID)
  Dim Parry,PnumArry
  Parry=Split(Request.Cookies("SSN")("ProductsID") & "," ,",")
  Pnumarry=Split(Request.Cookies("SSN")("ProductsNum") & "," ,",")
  Response.Cookies("SSN")("ProductsID")=Replace(Request.Cookies("SSN")("ProductsID"),Parry(ID),",")
  Response.Cookies("SSN")("ProductsID")=Replace(Request.Cookies("SSN")("ProductsID"),",,,",",")
  Pnumarry(ID)=","
  Response.Cookies("SSN")("ProductsNum")=ArryToStr(Pnumarry,",")
  Response.Cookies("SSN")("ProductsNum")=Replace(Request.Cookies("SSN")("ProductsNum"),",,,",",")
  Response.Cookies("SSN")("Count")=GetCount -1
  If Instr(Request.Cookies("SSN")("ProductsID"),",,")<>0 then
   Response.Cookies("SSN")("ProductsNum")=Replace(Request.Cookies("SSN")("ProductsNum"),",,","")
   Response.Cookies("SSN")("ProductsID")=Replace(Request.Cookies("SSN")("ProductsID"),",,","")
  End If
End Sub
'***********修改物品数量*********
Public Sub Modi(ID,Num)
  Dim Pnumarry
  If Num>999 Or Num<=0 Then    '这里的数字可以根据实际情况修改
  Response.Write("<Script>return false</Script>")
  Exit Sub
  End If
  Pnumarry=Split(Request.Cookies("SSN")("ProductsNum") & "," ,",")
  Pnumarry(ID)=Num
  Response.Cookies("SSN")("ProductsNum")=ArryToStr(Pnumarry,",")
End Sub

'*********清空购物车*********
Public Sub Drop()
  Response.Cookies("SSN")=""
End Sub
End Class
使用: 第1 '================================================= '建立购物车对象,该对象用于直接在程序中调用 '================================================= dim uCart set uCart= new UserCart 第二 建立一个购物车 uCart.CreateCart (可以重复建立,因为里面有IsArray判断。所以建议这句在建立购物车对象后必写) 第三 增购物车里的商品,在客户端点了某产品后,服务器端处理的ASP文件中接受传过来的产品标志,并访问数据库。分别把AddItem(aID产品标 志如ID,aName产品名称,aPrice1产品价格一,如单价,aPrice2产品价格二如会员价,aPrice3产品价格三如金牌会员价,如果没这么多可以置空 或置0,aCount购买数量,一般是一个,多个的话后面可以用修改函数修改,aImage产品图片地址) 使用方法:aa=uCart.AddItem(aID产品标志如ID,aName产品名称,aPrice1产品价格一,如单价,aPrice2产品价格二如会员价,aPrice3产品价格 三如金牌会员价,如果没这么多可以置空或置0,aCount购买数量,一般是一个,多个的话后面可以用修改函数修改,aImage产品图片地址),返回 true表示成功,false表示失败 第四 增了以后进如显示页面,就要用到查看购物车 mycart=uCart.ViewCart() For i =LBound(myCart,2) to UBound(myCart,2) if myCart(0,i)"" then myCart(0,i) '获取标号 myCart(1,i) '获取单价 。。。以此类推 end if next 第五 查看了,可以修改购物车,如更改数量等,或是删除其中的 call uCart.ModifItem(mID唯一标志号,mCount产品数量,mFlag-标志 0-添 1-删除,2-修改 3-清空) '先用给后面参数赋值 修改其中的商品 可以用第四个显示,先接受session的值,然后循环修改 或清空购物车 uCart.RemoveAll() 然后结帐,很简单 myprice=uCart.TPrice() 然后myprice(0)是产品单价的总价格,myprice(1)是产品会员价的总价格,myprice(2)是高级会员的总价格,myprice(3)是产品总数量 将商品装入购物车,这时需要用cookiesession来做一个不同页面间传递的全局变量,也就是说关了浏览器(针对session)或清楚了cookie等原因,本次购物车会消失,就象你今天在商场买了一车的东西,最后没结帐,明天肯定没了,又归位了,当然要有特殊需要保存,可以写数据库!所以这里记录的只需要是该商品的相关信息就可以了,这里我们记录他的 物品ID, 物品单价, 物品名称, 物品数量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值