鉴于大家对ASP类作品十分关注,我们编辑小组在此为大家搜集整理了“基于ASP的网上售书系统”一文,供大家参考学习!
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
五.系统功能模块设计5.1客户端5.1.1购物篮在设计购物篮中,首先要考虑到的是购物篮中商品信息的存储,而且在整个的商品购买中没有改变,这里就要用到ASP中的内置Session组件,它是访问者从的到达某个特定主页到离开为止的那段时间,服务器端给他分配一个用来储存信息的全局变量的集合,这些变量可以自动生成,也可以是程序人员在服务器端脚本程序中定义的。 Session可以用来存储访问者的特定信息,创建访问者信息容器。我们使用它来作为虚拟购物篮,无论什么时候用户在我网站中选择了一种商品,那么这种商品就会进入购物篮,当用户准备离开时,就可以立即进行以上所有选择的商品的订购。这些购物信息可以保存在 Session中。用户在Web应用程序中访问同一页面时,Session变量始终存在,当用户在应用程序的页之间跳转时,存储在Session对象中的变量也不会清除。 在建立购物篮中,其实是对全局变量的操作。在这里我定义了一个全局变量:ProductList = Session("ProductList"),将购物信息保存到此全局变量中。另外还定义了一个全局变量Products,通过函数PutToShopBag()将ProductList的值赋给Products,使用函数Split()将读取到的字符串进行分割,以得到购物信息:Products = Split(Request("cpbm"), ", ")。 /*建立购物篮的详细代码*/ ProductList = Session("ProductList") Products = For i=0 To UBound(Products) PutToShopBag Products(i), ProductList Next Session("ProductList") = ProductList /*函数PutToShopBag()代码*/ <% Sub PutToShopBag( cpbm, ProductList ) If Len(ProductList) = 0 Then ProductList = "''" & cpbm & "''" ElseIf InStr( ProductList, cpbm ) <= 0 Then ProductList = ProductList & ", ''" & cpbm & "''" End If End Sub %> 购物篮界面如下图所示: 在我的购物篮中可操作的事件为: ◇ 确认更改:在数量项目文本框中可以更改数目,该事件是用以更新购物篮中的商品数量; ◇ 继续购物:该事件是关闭窗口; ◇ 订单取消:该事件清空购物篮; ◇ 去收银台:该事件是用来关闭窗口并重新打开新的窗口。 除了购物篮中的可视化操作外,还有就是商品购入事件(即在网上商店的点击购买的事件)。现在我们称这些事件是用来触发购物篮中的工作模式,在每次的触发模式时,都有一个传递的数值变量通过来判断触发的是哪个工作模块。下面详细介绍购物篮(check.asp)各工作模式的具体实现: 1) Add模式(购买添加) 用户点击他想购买的商品的“订购”链接时,通过调用函数OpenBag()来打开页面check.asp,“订购”链接把有关商品信息的资料字符传到check.asp,如下例: function openbag(id) { window.open("check.asp?cpbm="+id,"","height=200,width=600,left=190,top=0,resizable=yes,scrollbars=yes,status=no,toolbar=no,menubar=no,location=no");} 在该触发事件触发时,执行check.asp, 对购物车执行了这次添加后,大部分其余的ASP代码就不再执行,因为它应用于其他的工作模式,模式的选择都是采用IF语句来实现的,而每次check.asp只会在一个模式下工作的。 2) Record模式(更新数量) 该模式用于顾客项购买多件货物时,自动重新计算所需的货物总价格。用户以用它马上看到改过的数量后的结果。 如下面的语句: Sum = 0 While Not rs.EOF Quatity = CInt( Request( "Q_" & rs("Product_Id")) ) If Quatity <= 0 Then Quatity = CInt( Session(rs("Product_Id")) ) If Quatity <= 0 Then Quatity = 1 end if End If Session(rs("Product_Id")) = Quatity Sum = Sum + ccur(rs("P_NewPrice")) * Quatity 在输入文本框中时,该程序将对其输入的值进行判断,是否是数字的字符,以避免存储出错,造成不必要的麻烦。其判断函数如下(采用Javascript脚本语言编写): //功能介绍:检查是否为数字 //参数说明:要检查的数字 //返回值:1为是数字,0为不是数字 function fucCheckNUM(NUM) { var i,j,strTemp; strTemp="0123456789"; if ( NUM.length== 0) return 0 for (i=0;i<NUM.length;i++) { j=strTemp.indexOf(NUM.charAt(i)); if (j==-1) { //说明有字符不是数字 return 0; } } //说明是数字 return 1; } 这种预先判断的处理方式,很大的程度上解决了非法输入对后面的存储所带来的一系列问题。 3) DelAll模式(清空购物篮) 这个是对购物篮的商品进行清空的处理,其实就是对全局变量ProductList赋空值(Session("ProductList") = "")。通过调用函数clean()来执行clear.asp. 4) LinkTo模式(去收银台) onclick="window.opener.location.href=''PayMent.asp'';window.close();" 该模式通过点击触发事件onclick来调用并执行PayMent.asp,并关闭当前购物篮。该事件不能对所购买的商品数量的更改而更改,只能通过确认更改来实现。 5) 继续购物 该摸块也是调用Window对象中的window.close()函数,它回自动的关闭购物篮的窗口,该事件也不能对所购买的商品数量的更改而更改。 说明:在这里会出现一种情况,就是说如果未购买任何商品的话,则将返回一提示信息。
|
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |