一个下拉列表框指定它所属的厂商,在这里一定要对输入进行验证,包括输入是否为空,所输入的价格必须是数字,以及输入长度的限制等。这些是纯HTML和JavaScript技巧。
图6-2添加商品页面
在添加商品截面中单击[添加]按钮后,就会将数据提交到proaddsave.asp文件中,这个文件将proadd.asp文件所提交的数据写到数据库中,其实原理与天家厂商很相似,就是将一个表单中的数据利用ADO对象或SQL语句写入到数据库中。
在这个页面中,仍然要注意操作完数据库以后,要手工释放连接。另外,这里只进行了简单的数据验证,如果提交的价格不是数字的话,加工它们默认置为"1",而不恩能够直接用CInt转为"0",否则在将来计算商品打折时由于分母为"0"会出错。
3.修改商品
修改商品用到文件promodify.asp和promodifysave.asp。修改商品与添加商品的界面非常相似,事实上也的确如此,所不同的是,在promodify.asp文件中将检索到的数据添加到个表单元素中,而在proadd.asp中根本不存在检索商品数据的问题。
4.删除商品
删除商品用到的文件是prodel.asp,商品ID通过URL参数传入,因此首先要从Request的QueryString集合中取出商品ID,并需要将其两边的空格和可能存在的单引号去除,然后组织SQL语句删除。这里的原理很简单,但仍然要注意的是安全问题,在用Request.QuerString获取参数id后,必须对其合法性进行判断。
商品管理程序流程图如下图6-3所示:
图6-3商品管理程序流程图
6.1.2会员维护模块
会员维护模块的主要功能:显示会员列表(memberlist.asp),删除会员(memdel.asp),修改会员(memmodify.asp),保存会员修改结果(memmodifysave.asp)。
从文件数目可以看出,会员维护模块相对比较简单,因为没有添加功能,会员的添加是在客户端,通过注册页面来完成的。而其他的管理端功能,包括列表、删除和修改都与商品维护类似。
图6-4是会员列表的显示界面,从图中可以看出这个界面与厂商管理、商品维护风格完全一致,也具有搜索、修改和分页功能。
图6-4会员列表的显示界面
有以上功能决定了memberlist.asp页面也需要以下两个参数来控制页面的显示:
Page:当前页号,位于querystring集合中,如果找不到,默认为"1"
Mykeyword:过滤会员的关键字,位于form集合中,如果找不到,默认为空。
图6-5为修改会员信息界面,选中图中的"修改密码"复选框后,修改密码功能才被激活,否则指挥修改一般信息,密码保持不变。
图6-5修改会员信息界面
要注意在这个页面中,首先要判断复选框是否被选中,涉及到了表单元素值传递的方式。
表单是想服务器提交数据的一种手段,可以把表单看做一个容器,它里面有不同种类的元素。Input元素可以向服务器提交数据,可以通过它的type属性来设置它的显示类型,如常用的text、passwod、submit、button、reset、hidden,不管type属性如何设置,都可以给input元素指定它的value属性,然后在提交表单时,这个value属性就会被提交到服务器。
修改会员页面和保存修改结果页面分别有memmodify.asp和memmodifysave.asp两个文件来完成,具体的实现方法与前面界面的实现很类似。
会员管理程序流程图如下图6-6所示:
图6-6会员管理程序流程图
6.1.3订单维护模块
订单维护模块的主要功能:显示订单列表(orderlist.asp),删除订单(orderdel.asp),处理订单(orderprocess.asp),保存订单处理结果(orderproesssave.asp)。
订单维护模块是本系统的本质所在,本系统的目的就是用来销售的,自然最感兴趣的就是订单。但实际上订单维护模块从技术实现角度讲并不复杂,与会员维护类似,只有列表删除与修改(处理)功能。
1.订单列表
图4-7是订单列表的显示界面,从图中可以看出下订单的客户可以是会员,也可以是非会员,如果石灰员,则显示其姓名,单击姓名可以查看会员资料。
图6-7订单列表显示界面
显然,对于这样的界面,只需要一个page参数就够了,其余的工作是将数据从数据库中读出来,然后按照前面的方法以列表形式显示。不过需要注意以下几点:
(1)只选取未处理订单。
数据库中的订单处理状态表示是state,当state=0时是未处理订单。
(2)对非会员的处理。
如果是注册会员,在订单列表中会显示会员姓名,并且有链接显示相应的会员信息,而如果是非会员,在订单列表中则显示"非会员",且没有链接。是否是会员是由orderlist表中的字段memberid来区分的,如果memberid="0",则表示非会员。
2.订单处理
图6-8为订单处理界面,从图中可以看出订单处理界面的上方显示的是订单详细资料,接下来是订货明细,最后是相关操作,可以铲除或者发货,或者留做以后处理。
图6-8订单处理界面
此页的实现原理是首先从querystring集合中查找名为"id"的参数,这个是待处理的订单编号,然后根据此订单首先列出订单详细资料,在此之后是这个订单所包含的商品清单,最后给出这个订单的总价格。这里涉及两个数据表,与某一个订单相关的顾客信息存放在orderlist表中,从此表检索订单详细资料的SQL语句如下:
Strsql="select*fromorderlistwhereid="&norderid
其中norderid是传入的订单id。接下来的订单明细稍复杂一些,首先要明白一件事,那就是这里所说的一个订单,即orderlist表中的一条记录,可能包含多个商品,而客户对没个商品的购买量可能不止一个。在本系统中,将客户对每一种商品的购买关系和购买量存放在orderdetail表中,作为其中的一条记录,二者靠订单号相联系。换句话说,一个订单,在orderlist表中是一条记录,在orderdetail表中有多条记录存储对不同商品的购买量。
发货操作有orderprocesssave.asp处理完成,基本原理是对数据库的更新,将orderlist表中的state字段更新为"1",表示订单已处理,此外还有一些其他附带的更新资料,如记录发货时间、附带说明等。
管理端订单处理流程如下图6-9所示:
图6-9管理端订单处理流程
6.1.4管理员维护模块
管理员维护模块的主要功能:显示管理员列表(userlist.asp),添加管理员页面(useradd.asp),保存添加的管理员信息(useraddsave.asp),删除管理员(userdel.asp),修改管理员界面(usermodify.asp),保存管理员修改结果(usermodifysave.asp)。
从文件可以看出,管理员维护模块的功能也比较完整,包括添加、修改和删除。不过在管理员维护模块的实现过程中有以下几点需要注意:
(1)默认管理员admin不可以删除。
(2)添加和修改管理员时要验证两次输入密码是否一致。
(3)管理员帐号是以文本格式存储的,因此要手工判断不可重名。
这里对管理员维护已经非常简化,一个安全性要求很高的系统,需要对管理员以组或角色来分类,然后还要有详细的权限定义字典,在权限定义字典中规定了各项功能与用户角色之间的对应关系。
6.1.5用户登陆模块
用户登陆模块需要登陆页面(login.asp)、登陆基本函数(adminbase.asp)注销页面(loginout.asp)的支持。
用户登陆模块是管理员进入后台管理系统所看到的第一个页面,但放在这里讲的目的是因为登陆功能是针对最后使用而设计的,在前期开发调试阶段,登陆功能往往会让你心乱如麻,因为在刚编写完一个页面准备调试时,却发现需要登陆,问题不仅仅是登陆过程会浪费一定的时间,更重
上一篇:
ASP在线手机销售系统(论文和程序)
下一篇:
试析影响公路路面平整度的因素及应采取的施工措施