天天看点

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

%>