帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > ASP编程
用ASP设计购物推车
作者:佚名 发布时间:2005-04-02 来源:不详
   什么是购物推车?   你一定去过超级市场吧。在那里你可以推着推车,将中意的商品放进推车,或者把推车里的商品取出来重新放到货架,最后你推着推车去结账。   那么,在网上超市,客户也应该可以在浏览商品目录时,将中意的商品放进"电子推车"。电子推车是超级市场推车的电子化。在网上商店里,这种电子推车又称为"购物推车",英文是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 %>
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·用ASP.NET加密口令  (2005-04-02)
 ·用ASP.NET构建简单的Web Form  (2005-04-02)
 ·用ASP实现网页BBS  (2005-03-12)
 ·用ASP实现网页保密的两种方法  (2005-03-12)
 ·用ASP建立站内搜索  (2005-03-12)
 ·利用ASP规划聊天室  (2005-03-12)
 ·如何使用ASP在自己的网站建立投票  (2005-03-12)
 ·如何使用ASP在自己的网站建立投票  (2005-03-12)
 ·如何用ASP编写网站统计系统一  (2005-03-12)
 ·如何用ASP编写网站统计系统二  (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·在ASP中使用数据库
·使用ASP脚本技术
·通过启动脚本来感受ASP的力量
·学习使用ASP对象和组件
·解析asp的脚本语言
·初看ASP-针对初学者
·ASP开发10条经验总结
·ASP之对象总结
·ASP与数据库应用(给初学者)
·关于学习ASP和编程的28个观点
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统