asp +js + cookies、实现简单购物车流程

asp制作购物车的功能,实现方法有好多种一般都会用cookies,session,table等,各种方法都有各自的好处与不足,那就要看自己适用哪种了。这里我就用cookies。

1.加入购物车JS函数buy.js

     //writeCookie("cookie名称","产品ID","产品名称","产品数量",价格)
function writeCookie(name, ID, pro, num, pri)
{
var test=false;
var values="," + escape(ID) + "$" + escape(pro) + "$" + escape(num) + "$" + escape(pri);
var cookieValue = readCookie(name);
sss=cookieValue.split(",")
for (i=0;i<sss.length;i++){
s=sss[i].split("$");
for(j=0;j<s.length;j++){
if(s[0]==ID)
{
cookieValue=cookieValue.replace(","+sss[i],"");
nums=s[2];
test=true;
alert('你已经购买过此商品,将只在数量上添加!');
break;
}
}
}
if (test)
{
document.cookie = name + "=" + cookieValue+ "," + escape(ID) + "$" + escape(pro) + "$" + escape(parseInt(num)+parseInt(nums)) + "$" + escape(pri)+"; path=/";
test=false;
}
else
{
document.cookie = name + "=" + cookieValue+values+"; path=/";
alert ('购买成功');
}
}
function readCookie(name)
{
var cookieValue = "";
var search = name + "=";
if(document.cookie.length > 0)
{
offset = document.cookie.indexOf(search);
if (offset != -1)
{
offset += search.length;
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
cookieValue = document.cookie.substring(offset, end)
}
}
return cookieValue;
}

2.简单加入购物车方法:

<%if session("logname")<>"" then%><a href="#" onClick="writeCookie('<%=session("logname")%>','<%=rs("id")%>','<%=rs("title")%>',document.getElementById('pnumber').value,<%=rs("price")%>)"><img src="images/jiarugouwuche.jpg" width="97" height="26" border="0" /></a><%else%><a href="login.asp?returnurl=<%=geturlname()%>"><img src="images/jiarugouwuche.jpg" width="97" height="26" border="0" /></a><%end if%>  

判断是不是会员,如果是就可以加入购物车//writeCookie("cookie名称","产品ID","产品名称","产品数量",价格

 

3.购物车内容重新buy_cart.js

function readCookie(name)
{
var cookieValue = "";
var search = name + "=";
if(document.cookie.length > 0)
{
offset = document.cookie.indexOf(search);
if (offset != -1)
{
offset += search.length;
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
cookieValue = document.cookie.substring(offset, end)
}
}
return cookieValue;
}//readCookie(name)   此函数为返回已购买的所有内容,包括  物品ID,物品单价,物品名称,物品数量
function stringToInteger (inputString)
{
return parseInt(inputString);
}//stringToInteger(inputString)   返回由字符串(inputString)转换所得到的整数
function isNotaNumber (inputString)
{
return isNaN(inputString);
}//isNotaNumber(inputString)   返回一个 Boolean 值,指明inputString是否是保留值NaN(不是数字)
function UpdateCookie(name,Ids)
{
var buy_num=document.getElementById(Ids);
value=buy_num.value;
s=value.split("$");
value=escape(s[0])+"$"+escape(s[1])+"$"+escape(s[2])+"$"+escape(s[3])
var vvv="";
vvv=readCookie(name);//返回所有购买的内容
vvv=vvv.replace(','+value,"");//把要删除的内容和其前面的","一起置空
document.cookie = name + "=" + vvv+"; path=/";//再把新的内容写入cookie里面
location.reload();
}//UpdateCookie(name, value)   删除value这个内容
function ModifyCookie(name, valuex, ID, pro, num, pri)
{
var vvv="";
vvv=readCookie(name);//返回购买的所有内容,包括  物品ID,物品名称,物品数量,物品单价
s=valuex.split("$");
valuex=escape(s[0])+"$"+escape(s[1])+"$"+escape(s[2])+"$"+escape(s[3])
vvv=vvv.replace(','+valuex,"");//把要修改的内容去掉
document.cookie = name + "=" + vvv + "," + escape(ID) + "$" + escape(pro) + "$" + escape(num) + "$" + escape(pri)+"; path=/";//加上修改后得到的内容
location.reload();
//location.href='?';
}//ModifyCookie(name, valuex, ID, pro, num, pri)   修改内容,valuex为修改前的内容,value1-value4为修改后的内容
function clears(username)
{ var a=null;
document.cookie=username+"="+a+";path=/";
window.location.href='buy.asp';
}//清除COOKIE


4.物品清单:

  • <table height="76" border="0" cellpadding="0" cellspacing="0">  
  •                 <tr>  
  •                   <td width="46" align="center" valign="middle" class="hei14"  background="images/indl_27.jpg" style="border-top:#CCCCCC 1px solid; border-bottom:#CCCCCC 1px solid">序号</td>  
  •                   <td width="247" height="37" align="center" valign="middle" class="hei14"  background="images/indl_27.jpg" style="border-top:#CCCCCC 1px solid; border-bottom:#CCCCCC 1px solid">已购的产品</td>  
  •                   <td width="92" align="center" valign="middle" class="hei14"  background="images/indl_27.jpg" style="border-top:#CCCCCC 1px solid; border-bottom:#CCCCCC 1px solid">数量</td>  
  •                   <td width="96" align="center" valign="middle" class="hei14"  background="images/indl_27.jpg" style="border-top:#CCCCCC 1px solid; border-bottom:#CCCCCC 1px solid">单价</td>  
  •                   <td width="155" align="center" valign="middle" class="hei14"  background="images/indl_27.jpg" style="border-top:#CCCCCC 1px solid; border-bottom:#CCCCCC 1px solid">小计</td>  
  •                   <td width="157" align="center" valign="middle" class="hei14" background="images/indl_27.jpg" style="border-top:#CCCCCC 1px solid; border-bottom:#CCCCCC 1px solid">操作</td>  
  •                 </tr>  
  •                 <%   
  •             if session("logname")<>"" then   
  •             buylist=request.Cookies(session("logname"))'返回name为session("username")的cookie的内容   
  •             buylist=replace(buylist,",null","")   
  •             buylist_v=split(buylist,",")'用","把他们分开   
  •                
  •             for x=1 to ubound(buylist_v)'ubound 返回在buylist_v数组最大的维数,VBS数组下标为0(开始)   
  •                 if buylist_v(x)<>"" and buylist_v(x)<>"null" then'判断第x购物内容是否为空   
  •                    
  •                 buylist_v_v=split(buylist_v(x),"$")'buylist_v_v为第一组数,即第x次购物的内容   
  •                 buylist_vbuylist_v_x=buylist_v(x)'buylist_v_x为第x次购物的内容,与buylist_v(x)同   
  •                    
  •                     if(ubound(buylist_v_v))<3 then   
  •                     response.write("<script>alert('出现错误');document.cookie="""&session("logname")&"""+"""=""";location.href='?';</script>")   
  •                     response.End()   
  •                     end if   
  •                     ProID=buylist_v_v(0)'有四个内容读四次,这个为 物品ID   
  •                     ProName=buylist_v_v(1)'这个为 物品名称   
  •                     ProNum=buylist_v_v(2)'这个为 物品数量   
  •                     ProPrice=buylist_v_v(3)'这个为 物品单价   
  •                        
  •                     AllPriceAllPrice=AllPrice + (ProNum*ProPrice)   
  •         %>  
  •                 <tr>  
  •                   <td align="center" valign="middle" class="hei14"><%=x%><input type="hidden" name="ID_<%=x%>" id="ID_<%=x%>" value="<%=ProID%>" /></td>  
  •                   <td height="39" align="center" valign="middle" class="hei14"><%=ProName%><input type="hidden" name="buy_<%=x%>" id="buy_<%=x%>" value="<%=buylist_v(x)%>" /></td>  
  •                   <td align="center" valign="middle" class="hei14"><input name="num_<%=x%>" type="text" onChange="if(isNotaNumber(this.value)==true){alert('请输入整数数字');this.value=1;}else{this.value=stringToInteger(this.value);};ModifyCookie('<%=session("logname")%>','<%=buylist_v(x)%>','<%=ProID%>','<%=ProName%>',this.value,'<%=ProPrice%>');" value="<%=ProNum%>" size="5" maxlength="5" /></td>  
  •                   <td align="center" valign="middle" class="hei14"&gt;¥<%=ProPrice%><input type="hidden" name="pri_<%=x%&gt;" id="pri_<%=x%>" value="<%=ProPrice%>" /></td>  
  •                   <td align="center" valign="middle" class="hei14"&gt;¥<span class="red"><%=ProPrice*ProNum%></span></td>  
  •                   <td align="center" valign="middle" class="hei14"><a href="#" onClick="UpdateCookie('<%=session("logname")%>','buy_<%=x%>');" class="black">删除</a></td>  
  •                 </tr>  
  •                 <%   
  •                 end if   
  •             next   
  •                
  •         end if   
  •         %>  
  •         <tr>  
  •             <td colspan="6" align="right" style="border-bottom:#CCCCCC 1px solid">商品总金额(不含运费):¥<span id="all" class="red"&gt;<%=AllPrice%></span>元 </td>  
  •           </tr>  
  •           <%if AllPrice>0 then%>  
  •           <tr>  
  •             <td colspan="4"><div class="buy_bt1"><a href="#" onClick="clears('<%=session("username")%>');">清空购物车</a></div>            </td>  
  •             <td><div class="buy_bt1"><a href="products.asp">再逛逛</a></div></td>  
  •             <td>  
  •             <div class="buy_bt2"><a href="saveorder.asp" >去结帐</a></div>  
  •             </td>  
  •           </tr>  
  •           <%end if%>  
  •             </table> 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用: 第1 '================================================= '建立购物车对象,该对象用于直接在程序中调用 '================================================= dim uCart set uCart= new UserCart 第二 建立一个购物车 uCart.CreateCart (可以重复建立,因为里面有IsArray判断。所以建议这句在建立购物车对象后必写) 第三 增加购物车里的商品,在客户端点了某产品后,服务器端处理的ASP文件中接受传过来的产品标志,并访问数据库。分别把AddItem(aID产品标 志如ID,aName产品名称,aPrice1产品价格一,如单价,aPrice2产品价格二如会员价,aPrice3产品价格三如金牌会员价,如果没这么多可以置空 或置0,aCount购买数量,一般是一个,多个的话后面可以用修改函数修改,aImage产品图片地址) 使用方法:aa=uCart.AddItem(aID产品标志如ID,aName产品名称,aPrice1产品价格一,如单价,aPrice2产品价格二如会员价,aPrice3产品价格 三如金牌会员价,如果没这么多可以置空或置0,aCount购买数量,一般是一个,多个的话后面可以用修改函数修改,aImage产品图片地址),返回 true表示成功,false表示失败 第四 增加了以后进如显示页面,就要用到查看购物车 mycart=uCart.ViewCart() For i =LBound(myCart,2) to UBound(myCart,2) if myCart(0,i)"" then myCart(0,i) '获取标号 myCart(1,i) '获取单价 。。。以此类推 end if next 第五 查看了,可以修改购物车,如更改数量等,或是删除其中的 call uCart.ModifItem(mID唯一标志号,mCount产品数量,mFlag-标志 0-添加 1-删除,2-修改 3-清空) '先用给后面参数赋值 修改其中的商品 可以用第四个显示,先接受session的值,然后循环修改 或清空购物车 uCart.RemoveAll() 然后结帐,很简单 myprice=uCart.TPrice() 然后myprice(0)是产品单价的总价格,myprice(1)是产品会员价的总价格,myprice(2)是高级会员的总价格,myprice(3)是产品总数量 将商品装入购物车,这时需要用cookie或session来做一个不同页面间传递的全局变量,也就是说关了浏览器(针对session)或清楚了cookie等原因,本次购物车会消失,就象你今天在商场买了一车的东西,最后没结帐,明天肯定没了,又归位了,当然要有特殊需要保存,可以写数据库!所以这里记录的只需要是该商品的相关信息就可以了,这里我们记录他的 物品ID, 物品单价, 物品名称, 物品数量

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值