新云软件园:请安心下载,绿色无病毒!

软件提交最近更新热门排行
您现在的位置:首页››编程教学››ASP教程››ASP应用

用ASP设计购物推车

2005-07-26 00:35作者:未知来源:未知浏览:297 评论:0

 darkman·yesky
 
 什么是购物推车?
   你一定去过超级市场吧。在那里你可以推着推车,将中意的商品放进推车,或者把推车里的商品取出来重新放到货架,最后你推着推车去结账。
   那么,在网上超市,客户也应该可以在浏览商品目录时,将中意的商品放进"电子推车"。电子推车是超级市场推车的电子化。在网上商店里,这种电子推车又称为"购物推车",英文是Shopping Cart。
 购物推车的设计目标
   从程序员的观点来看,购物推车是维护购物者商品选购、允许察看、允许修改的一个对象。购物推车本身是一个非常简单的程序,但开发者要考虑它将连接到商品目录子系统、订单子系统、客户账号子系统、站点管理子系统等等,形成功能完整的网上商店。
 
 下面是购物推车的设计目标:
 1、 持续性:购物推车应该从它的前一次会话中记住其内容。
 2、 购物推车和客户相关,而不是和客户的电脑相关。客户可以从另外的电脑或浏览器来访问购物推车。
 3、 当新的商品被加入推车或者从推车去掉时,推车的内容可以被显示给用户。
 4、 推车可以容纳很多甚至无限的商品。
 系统设计/流程设计
   在编写我们的购物推车之前,我们看看它的系统架构和流程。请看下图:
 
   如果客户从商品目录中选择了一件商品,这时我们传递客户的请求到proxy.asp,同时传递的是动作变量"增加商品"。Proxy.asp读取这个变量,并决定执行购物推车的哪个动作。这些动作包括:增加商品、更新商品数量、移除商品或者察看购物推车。
   有些动作被作为内部调用。如创建推车之前,我们需要检查推车是否已经存在(CheckCart)。在增加、删除或者更新商品及其数量时,我们要确认此商品是否已经存在于我们的购物推车之中(CheckItem)。下面我们将为购物推车设计8个方法,分别是:
 ViewItem 察看推车
 CheckCart 检查推车
 CreateCart 创建推车
 AddItem(ID, Qty), 增加商品
 RemoveItem(ID) 删除商品
 UpdateItem(ID, Qty), 更新数量
 RemoveAll 全部清空
 CheckItem(ID) 商品检查
 
 购物推车的设计
   购物推车需要三个要素:一个VBScript 5的类class CartKit,一个多维数组mudCart,一个session变量Session("Cart")。
   这个VBScript 类,我们称为CartKit,包含了8个方法,如上表所示。在本文我们只用了ID和Qty,分别表示商品编号和数量。
   这样我们就可以用一个二维数组来表达这个推车,象下面这样:
 商品编号 商品数量
 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) <> 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
 %>
 <table>
 <tr>
 <td>Item Name</td>
 <td>Item Quantity</td>
 <td></td>
 </tr>
 <%
 FOR i = LBound(mudCart) TO UBound(mudCart)
 IF mudCart(i,0) <> "" THEN
 %>
 <tr>
 <td><%=%></td>
 <%
 Response.Write "Item ID: " & mudCart(i,0) & "<--"
 Response.Write "<BR>"
 Response.Write "Item Qty: " & mudCart(i,1) & "<--"
 Response.Write "<BR>"
 END IF
 NEXT
 ELSEIF isArray(mudCart) = False THEN
 Response.Write "No item in your cart!"
 Response.Write "<BR>"
 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的定义
Tags:责任编辑:cvery
顶一下(56)
91.8%
    1. 购物优惠券购物优惠券软件

      网上淘宝内部优惠券app也有不少,但是哪个好用?哪个简单操作呢?今天小编就先介绍一些超实用的淘宝省钱神器,让你从此走上省钱购物达人的道路,让你更快地知道新的优惠和折扣活动,为你节省更多无谓的开支!一起来看...

    1. 手机购物app手机购物app

      新云软件园手机购物软件下载专区提供了最全面最好用的手机购物平台客户端和手机购物APP,以及热门排行手机购物软件免费下载。

    1. 购物助手购物助手

      购物助手专区提供了最全面的最好用的购物助手插件下载。

    文章评论 新云下载QQ群:① 7551827使用手机微信搜索 微信号:xinyunshouyou 关注我们 有更多惊喜!!

    请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!
      验证码:     登录   注册
    网友评论

    关注新云安卓游戏网