Asp的购物车

<%
Dim CartStr
'购物车相关函数
'HJ 2007年1月23号
'购物车数据定义:  商品ID|数量#颜色*尺寸,商品ID|数量#颜色*尺寸,商品ID|数量#颜色*尺寸,商品ID|数量#颜色*尺寸

Sub CartAdd(ProductID,Num,ColorID,SizeID)
'添加某种商品
 CartStr = Trim(Request.Cookies("SpiderCart"))
 if CartStr = "" Then
  Response.Cookies("SpiderCart") = ProductID & "|" & Num & "#" & ColorID & "*" &SizeID
  Exit Sub
 end if
 
 CartStr = CartStr & "," & ProductID & "|" & Num & "#" & ColorID & "*" &SizeID
 Response.Cookies("SpiderCart") = CartStr
End Sub

Sub CartEdit(ProductID,Num)
'编辑某种商品的数量
 CartStr = ","&Trim(Request.Cookies("SpiderCart"))
 if(InStr(CartStr,","&ProductID&"|") = 0) Then
  Alert("该商品刚刚卖完")
  CartDel(ProductID)
  Exit Sub
 end if
 
 Arr = Split(CartStr,","&ProductID&"|")
 CartStr = Arr(0) &"," &ProductID& "|" & Num & "#" & Right(Arr(1),Len(Arr(1)) - InStr(Arr(1),"#"))
 CartStr = Right(CartStr,Len(CartStr)-1)
 
 Response.Cookies("SpiderCart") = CartStr
End Sub

Sub CartClear
 Response.Cookies("SpiderCart") = ""
End Sub

Sub CartDel(ProductID)
'删除某种商品
 CartStr = Trim(Request.Cookies("SpiderCart"))
 if(CartStr = "") Then Exit Sub
 'Alert(CartStr)
 
 if( UBound(Split(CartStr,"|")) = 1 ) Then
  Response.Cookies("SpiderCart") = ""
  Exit Sub
 end if
 
 CartStr = "," & CartStr
 ArrCart = Split(CartStr,","&ProductID&"|")
 CartStr = ArrCart(0) & Right(ArrCart(1),Len(ArrCart(1))-InStr(ArrCart(1),"*"))
 CartStr = Right(CartStr,Len(CartStr) - 1)
 Response.Cookies("SpiderCart") = CartStr
End Sub

Function GetColorBYProductID(ProductID)
'返回商品的颜色
 CartStr = ","&Trim(Request.Cookies("SpiderCart"))
 
 ArrCart = Split(CartStr,","&ProductID&"|")
 ArrCart(1) = Right(ArrCart(1),Len(ArrCart(1)) - InStr(ArrCart(1),"#"))
 GetColorBYProductID = Left(ArrCart(1),InStr(ArrCart(1),"*")-1)
End Function

Function GetNumBYProductID(ProductID)
'返回商品的数量
 CartStr = ","&Trim(Request.Cookies("SpiderCart"))
 
 ArrCart = Split(CartStr,","&ProductID&"|")
 GetNumBYProductID = Left(ArrCart(1),InStr(ArrCart(1),"#")-1)
End Function

Function GetSizeBYProductID(ProductID)
'返回商品的尺寸
 CartStr = ","&Trim(Request.Cookies("SpiderCart"))
 
 'Response.Write(CartStr)
 'Response.End()
 
 ArrCart = Split(CartStr,","&ProductID&"|")
 ArrCart(1) = Right(ArrCart(1),Len(ArrCart(1)) - InStr(ArrCart(1),"*"))
 if(InStr(ArrCart(1),",") = 0) Then
  GetSizeBYProductID = ArrCart(1)
 else
  GetSizeBYProductID = Left(ArrCart(1),InStr(ArrCart(1),",")-1)
 end if
End Function

Function GetIDStr
'返回购物车中商品由ID组成的字符串
 CartStr = Trim(Request.Cookies("SpiderCart"))

 if(CartStr = "") Then GetIDStr = "":Exit Function

 if(InStr(CartStr,",") = 0 ) Then
  GetIDStr = Split(CartStr,"|")(0)
  Exit Function
 end if
 
 ArrCart = Split(CartStr,",")
 
 For i = 0 to Ubound(ArrCart)
  if ( i = 0 ) then
   GetIDStr = Split(ArrCart(i),"|")(0)
  else
   GetIDStr = GetIDStr & "," & Split(ArrCart(i),"|")(0)
  end if
 Next
End Function

Function isExistsInCart(ProductID)
'判断某个商品是否已经存在购物车中
 CartStr = Trim(Request.Cookies("SpiderCart"))
 
 if CartStr="" Then
  isExistsInCart = False
  Exit Function
 end if
 
 CartStr = "," & CartStr
 
 if Instr(CartStr,","& ProductID & "|") > 0 Then
  isExistsInCart = True
 Else
  isExistsInCart = False
 End if
End Function

Function GetCartCount
'计算购物车中商品数量
 CartStr = Trim(Request.Cookies("SpiderCart"))
 if CartStr = "" Then
  GetCartCount = 0
  Exit Function
 end if
 
 GetCartCount = Ubound(Split(CartStr,"|"))
End Function

Function GetMoney
'计算购物车中商品总价格
 CartStr = Trim(Request.Cookies("SpiderCart"))
 if(CartStr = "") Then GetMoney = 0:Exit Function
 
 Dim m,TotalPrice
 Set m = Server.CreateObject("Adodb.RecordSet")

 if(InStr(CartStr,",") = 0 ) Then
  arr = Split(CartStr,"|")
  Sql = "Select NewPrice*"&Left(arr(1),InStr(arr(1),"#")-1)&" as TotalPrice from SP_Detail where id="&arr(0)
  m.Open Sql,Conn,1,3
  if(m.RecordCount > 0) Then
   GetMoney =  m("TotalPrice")
   Exit Function
  else '该商品在购买后已经被删除
   CartDel(arr(0)) '清空商品
   GetMoney = 0
   m.Close
   Set m = Nothing
   Exit Function
  end if
  m.Close
 end if
 
 ArrCart = Split(CartStr,",")
 TotalPrice = 0
 
 'Response.Write(CartStr)
 'Response.End()
 
 For i = 0 to Ubound(ArrCart)
 arr = Split(ArrCart(i),"|")
  Sql = "Select NewPrice*"&Left(arr(1),InStr(arr(1),"#")-1)&" as TotalPrice from SP_Detail where id="&arr(0)
  m.Open Sql,Conn,1,3
  if(m.RecordCount > 0) Then
   TotalPrice = TotalPrice +  m("TotalPrice") 'm.fields(0).value
  else '该商品在购买后已经被删除
   CartDel(arr(0)) '清空商品
  end if
  m.Close
 Next
 
 Set m = Nothing
 GetMoney = TotalPrice
End Function
%>


另外一个文件

<%
Dim Conn

Sub ConnOpen(ConnStr)
'数据连接
'参数 ConnStr  数据库物理路径
 Set Conn = server.CreateObject("Adodb.Connection")
 Conn.Open "Driver={MicroSoft Access Driver (*.mdb)};" & "dbq="&ConnStr
 response.Buffer
 response.Expires=-9999
 session.Timeout = 60
End Sub

Sub ConnClose
 Conn.Close()
 Set Conn = Nothing
End Sub

Function ExecuteScalar(Sql)
'执行Sql语句,返回单个值结果
 Dim Result
 rs.Open Sql,Conn,1,3
 if(rs.RecordCount > 0) Then
  Result = rs.fields(0).value
 Else
  Result = 0
 End if
 rs.Close
 
 ExecuteScalar = Result
End Function

Sub Alert(Str)
 Response.Write("<script language=""javascript"">alert('"& Str &"');</script>")
End Sub

Sub AlertAndRedirect(Str,PageInfo)
 Response.Write("<script language=""javascript"">alert('"& Str &"');window.location = ('"&PageInfo&"');</script>")
End Sub

Sub AlertAndClose(Str)
 Response.Write("<script language=""javascript"">alert('"& Str &"');window.close();</script>")
 Response.End()
End Sub

Sub AlertAndBack(Str,Num)
 Response.Write("<script language=""javascript"">alert('"& Str &"');window.go("&Num&");</script>")
End Sub

Function ReplaceStr(str)
 ReplaceStr = Replace(str,"'","['']")
 ReplaceStr = Replace(str,"-","[_]")
End Function

Function ReStoreStr(str)
 ReStoreStr = Replace(str,"['']","'")
 ReStoreStr = Replace(str,"[_]","-")
End Function

Sub DelFile(Path)
'删除指定路径文件
Dim Fs
Set Fs = Server.CreateObject("Scripting.FileSystemObject")
 If(Fs.FileExists(Path)) Then Fs.DeleteFile(Path)
Set Fs = Nothing
End Sub

Function GetIP
'得到 IP 地址
 if(Request.ServerVariables("REMOTE_ADDR") = "") Then
  GetIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
 else
  GetIP = Request.ServerVariables("REMOTE_ADDR")
 end if
End Function

Function ExecuteScalar(Sql)
'执行Sql语句,返回单个值结果
 Dim Result
 rs.Open Sql,Conn,1,3
 if(rs.RecordCount > 0) Then
  Result = rs.fields(0).value
 Else
  Result = 0
 End if
 rs.Close
 
 ExecuteScalar = Result
End Function

Function GetOrderNo
'生成一个订单号  YYMMDDHHMMSS
 Randomize
 ranNum=int(90*rnd)+10
 GetOrderNo=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum
End Function
%>

 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用: 第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)是产品总数量 将商品装入购物车,这时需要用cookie或session来做一个不同页面间传递的全局变量,也就是说关了浏览器(针对session)或清楚了cookie等原因,本次购物车会消失,就象你今天在商场买了一车的东西,最后没结帐,明天肯定没了,又归位了,当然要有特殊需要保存,可以写数据库!所以这里记录的只需要是该商品的相关信息就可以了,这里我们记录他的 物品ID, 物品单价, 物品名称, 物品数量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值