本页内容是《用ASP设计购物推车》同时我们还提供济宁地区的网站建设,百度,雅虎,google的推广,点金,商友,等营销软件
请输入关键字:

标题搜索 内容搜索  

你现在所在的位置->首页->vbscript->用ASP设计购物推车

用ASP设计购物推车

时间:[2005-5-23 15:50:10]     作者:未知

什么是购物推车? 
    你一定去过超级市场吧。在那里你可以推着推车,将中意的商品放进推车,或者把推车里的商品取出来重新放到货架,最后你推着推车去结账。 
    那么,在网上超市,客户也应该可以在浏览商品目录时,将中意的商品放进"电子推车"。电子推车是超级市场推车的电子化。在网上商店里,这种电子推车又称为"购物推车",英文是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 
  %> 
              <% 
  FOR i = LBound(mudCart) TO UBound(mudCart) 
  IF mudCart(i,0) <> "" THEN 
  %> 
      <% 
  Response.Write "Item ID: " & mudCart(i,0) & "<--" 
  Response.Write "  Response.Write "Item Qty: " & mudCart(i,1) & "<--" 
  Response.Write "  END IF 
  NEXT 
  ELSEIF isArray(mudCart) = False THEN 
  Response.Write "No item in your cart!" 
  Response.Write "  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的定义 

【声明】本站刊载的《用ASP设计购物推车》一文如果有侵害你权益的情况,请联系我们。我们将及时采取措施。
QQ:44637339 Email:just6@163.com Tel:13355163107 Lining studios

友情链接

本页内容是《用ASP设计购物推车》 返回顶部
© 2001-2024 Lining studios 济宁速创科技有限公司, All Rights Reserved
 Processed Time:62.500ms
中华人民共和国信息产业部网站备案号: 鲁ICP备09103015号-1