仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3526|回复: 20
打印 上一主题 下一主题

[学习教程] ASP网页设计在电子商务中ASP完成购物车的办法

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:30:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。电子商务|购物车   手推车”功效的完成

  “手推车”是在线购物网站(批发)中一项主要的功效。本文将要切磋用ASP法式完成“手推车”功效的技能。要想在网站上完成“手推车”功效,有好几种办法,好比用Cookie、Session或埋没帧等。这几种办法各有优弱点,这里侧重会商用Cookie来完成“手推车”功效。

  用Cookie完成 “手推车”功效的优弱点

  Cookie是经由过程办事器端CGI、剧本或客户端剧本把信息保留在客户机上的,以便为办事器或客户机再次利用这些信息供应便利。在JavaScript中有一些专门用来对Cookie停止操作的函数,如设置Cookie值的Setcookie(name,value),删除Cookie的Deletecookie(name)等(具体见源码)。利用Cookie来保留“手推车”信息的长处是,即便当用户不当心封闭了阅读器窗口,“手推车”中的信息也不会丧失,而且它占用很少的办事器端资本,弱点是必需请求用户端阅读器撑持Cookie而且翻开它。

  “手推车”包括的功效子项

  1.把商品添加到“手推车”,就是订购。

  2.从“手推车”中删失落已订购的商品。

  3.修正“手推车”中某一商品的数目。

  4.清空“手推车”。

  5.显示,统计“手推车”中的商品。

  往“手推车”中 添加商品

  十分复杂,就是把某一商品的信息(称号、价钱、数目、扣头等)写入Cookie便可。这里不用把商品的一切信息都写入Cookie,只需记下商品在数据库中编号或ID(这里用catid暗示)与商品的数目就行。在显示“手推车”信息时,依据catid可以从商品数据库中查询出这类商品的一切详细信息。往“手推车”中添加商品的完成办法以下:

  function Addcat(catid,number){ //把商品添加到“手推车”函数

  if (number<=0)DeleteCookie(″mycat″+catid); //假如商品的数目少于或等于0,则删除该商品

  else   SetCookie(″mycat″+catid,catid+″,″+number); //把商品ID与数目写入Cookie

  var cat=window.open(″showcat.asp″,″cat″,″toolbar=no,menubar=no,location=no,status=no,width=420,height=280″); //翻开一个新窗口来显示统计的商品信息,即显示“手推车”}

  从“手推车”中 删失落商品

  也就是把Cookie中的该商品信息删除失落,挪用Deletecat(catid)便可。

  function Deletecat(catid){

  DeleteCookie(″mycat″+catid); //从Cookie中删除

  var cat=window.open(″showcat.asp″,″cat″,″toolbar=no,menubar=no,location=no,status=no,width=420,height=280″); //在CAT窗口显示统计的商品信息,即刷新显示“手推车”   }

  修正“手推车”中 商品的数目

  道理跟往“手推车”中添加商品是一样的,只不外把商品的数目修正成如今所要的数目。

  显示与统计 “手推车”中的商品信息

  显示的后果由Showcat.asp完成。这里利用了ASP中Request.Cookies纠合。Request.Cookies用来检索客户中Cookie值。咱们经由过程遍历 Cookies 纠合中的一切 Cookie 值掏出咱们的“手推车”的信息,然后从平分离出商品ID与商品数目。这里利用了VBscript中的SPLIT函数,SPLIT函数前往基于 0 的一维数组,个中包括指定命目标子字符串。

  掏出商品ID与商品数目后再依据商品ID从商品数据库中查询出该商品的详细信息,最初输入商品的称号、单价、扣头、数目和小计等,并累计商品总件数与商品总金额。  

源代码以下:

Showcat.asp

<html><head><title>Cat</title></head>

<body>

<form name=cat>

<table border="1" width="360" cellspacing="0" cellpadding="3" bordercolorlight="#FFFFFF" bordercolor="#008000">

<tr>

<td width="100%" colspan="5" align="center"><b>您的手推车信息</b></td>

</tr>

<tr>

<td width="45">称号</td>

<td width="45">单价</td>

<td width="45">扣头</td>

<td width="45">数目</td>

<td width="45">小计</td>

<td width="135"> </td>

</tr>

<% dim conn,rs,sqlstr,cook,catid,number,sum,allnum,i

i=0

set conn=server.createobject("ADODB.CONNECTION") '创立数据库ADO毗连实例

conn.open "DSN","USERID","PWD" '翻开数据库毗连

set rs=Server.CreateObject("ADODB.Recordset") '创立数据库ADO纪录集毗连实例

for each cook in request.cookies '遍历 Cookies 纠合

if instr(cook,"mycat") then '判别是不是“手推车”信息

catid=split(request.cookies(cook),",")[0] '分别出商品ID

number=split(request.cookies(cook),",")[1] '分别出商品数目

sqlstr="select * from cat where id="&catid&"" 'SQL查询语句

rs.open conn,sql,1,3 '履行查询,发生纪录集

xiaoji=rs("单价")*rs("扣头")*number '盘算小计

response.write "<tr><td width=45 ><font size=2 color=#800080>"&rs("称号")&"</font></td>"

response.write "<td width=45 ><font size=2 color=#800080>"&rs("单价")&"</font></td>"

response.write "<td width=45 ><font size=2 color=#800080>"&rs("扣头")&"</font></td>"

response.write "<td width=45 ><input type=text name=number"&i&" value="&number&" size=4></td>"

response.write "<td width=45 ><font size=2 color=#800080>"&xiaoji&"</font></td>"

response.write "<td width=135><input type=button value=更新 onclick=Addcat("&rs("ID")&",document.cat.number"&i&".value)> <input type=button value=删除 onclick=Deletecat("&rs("ID")&")></td></tr>

allnum=allnum+number '累计商品总件数

sum=sum+xiaoji '累计总金额

rs.close

i=i+1

end if

next

set rs=nothing

set conn=nothing

%>

<tr>

<td width="45">算计</td>

<td width="45"> </td>

<td width="45"> </td>

<td width="45"><%=allnum%></td>

<td width="45"><%=sum%></td>

<td width="135"><%=sum%></td>

</tr>

<tr>

<td width="360" colspan="6"> <font size="2"><a href="checkout.asp"><font color="#FF0000">结帐</font></a>

<a href=javascript:window.close()><font color="#008000">持续购物</font></a></font> <a href=javascript:Clearcookie()><font size="2" color="#0000FF">清空“手推车”</font></a></td>

</tr>

</table>

</form>

</body>

</html>

javascript中操作COOKIE的函数源码以下:

function Setcookie (name, value) { //设置称号为name,值为value的Cookie

var argc = SetCookie.arguments.length;

var argv = SetCookie.arguments;

var path = (argc > 3) ? argv[3] : null;

var domain = (argc > 4) ? argv[4] : null;

var secure = (argc > 5) ? argv[5] : false;

document.cookie = name + "=" + value +

((path == null) ? "" : ("; path=" + path)) +

((domain == null) ? "" : ("; domain=" + domain)) +

((secure == true) ? "; secure" : "");

}

function Deletecookie (name) { //删除称号为name的Cookie

var exp = new Date();

exp.setTime (exp.getTime() - 1);

var cval = GetCookie (name);

document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();

}

function Clearcookie() //排除COOKIE

{

var temp=document.cookie.split(";");

var loop3;

var ts;

for (loop3=0;loop3<temp.length;loop3++)

{

ts=temp[loop3].split("=")[0];

if (ts.indexOf('mycat')!=-1)

DeleteCookie(ts); //假如ts含“mycat”则履行排除

}

}

function getCookieVal (offset) { //获得项称号为offset的cookie值

var endstr = document.cookie.indexOf (";", offset);

if (endstr == -1)

endstr = document.cookie.length;

return unescape(document.cookie.substring(offset, endstr));

}

function GetCookie (name) { //获得称号为name的cookie值

var arg = name + "=";

var alen = arg.length;

var clen = document.cookie.length;

var i = 0;

while (i < clen) {

var j = i + alen;

if (document.cookie.substring(i, j) == arg)

return getCookieVal (j);

i = document.cookie.indexOf(" ", i) + 1;

if (i == 0) break;

}

return null;

}ASP脚本是采用明文(plain text)方式来编写的。
小魔女 该用户已被删除
沙发
 楼主| 发表于 2015-2-4 00:11:06 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
山那边是海 该用户已被删除
板凳
发表于 2015-2-8 20:25:13 | 只看该作者
掌握asp的特性而且一定要知道为什么。
因胸联盟 该用户已被删除
地板
发表于 2015-2-26 03:47:30 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
小妖女 该用户已被删除
5#
发表于 2015-3-4 06:20:19 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
不帅 该用户已被删除
6#
发表于 2015-3-8 11:10:11 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
透明 该用户已被删除
7#
发表于 2015-3-10 22:08:05 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
再现理想 该用户已被删除
8#
发表于 2015-3-15 14:38:11 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
只想知道 该用户已被删除
9#
发表于 2015-3-15 21:56:33 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
金色的骷髅 该用户已被删除
10#
发表于 2015-3-22 05:10:34 | 只看该作者
掌握asp的特性而且一定要知道为什么。
简单生活 该用户已被删除
11#
发表于 2015-3-24 07:52:02 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
老尸 该用户已被删除
12#
发表于 2015-3-25 09:32:40 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
莫相离 该用户已被删除
13#
发表于 2015-3-27 00:08:20 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
变相怪杰 该用户已被删除
14#
发表于 2015-4-1 17:36:17 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
灵魂腐蚀 该用户已被删除
15#
发表于 2015-4-13 22:46:13 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
精灵巫婆 该用户已被删除
16#
发表于 2015-5-9 13:49:15 | 只看该作者
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
乐观 该用户已被删除
17#
发表于 2015-6-7 22:26:50 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
飘灵儿 该用户已被删除
18#
发表于 2015-6-9 11:50:07 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
海妖 该用户已被删除
19#
发表于 2015-6-22 22:41:38 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
分手快乐 该用户已被删除
20#
发表于 2015-7-7 10:42:54 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-29 08:53

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表