|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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)方式来编写的。 |
|