基于cookies的小型购物车程序

最近因为公司项目开发,需要一个购物车程序。
虽然网上很多,但个人很久前就想写个。于是马上动手。
代码有点多,感觉方法不怎么好!
随便post上来,高手可略过~!

mycart.asp客户端:
<form method="POST" action="mycart.asp">
<table border="0" width="489" cellspacing="1" id="table1">
 <tr>
  <td bgcolor="#C0C0C0">产品名称</td>
  <td bgcolor="#C0C0C0">数量</td>
  <td bgcolor="#C0C0C0">合价</td>
  <td bgcolor="#C0C0C0">操作</td>
 </tr>
 
 <%
 Nid=split(request.cookies("myCartInfo")("proID"),"|") '商品ID
 Nnum=split(request.cookies("myCartInfo")("num"),"|")  '订购数量
 Nprice=split(request.cookies("myCartInfo")("price"),"|") '单价
 
 for k=1 to ubound(Nid)+1
 %>
 <tr>
  <td>
  <%
  set rs=conn.execute("select productName from product where id="&Nid(k-1)&"")
  response.write rs(0)
  set rs=nothing
  %>
  </td>
  <td><input type="text" name="num" size="4" value="<%=Nnum(k-1)%>"></td>
  <td>&yen;<%=Nprice(k-1)*Nnum(k-1)%></td>
  <td><a href="mycart.asp?action=remove&location=<%=k-1%>">移除</td>
 </tr>
 <%next%>
 <tr>
  <td colspan="4">
  <p align="center">
  <input type="submit" value="清空购物车" name="action">
  <input type="submit" value="继续购物" name="action">
  <input type="submit" value="更新数量" name="action">
  <input type="submit" value="去结帐" name="action">
  </td>
  </tr>
    </table>
</form>

mycart.asp服务端:

<%
dim action
action=request("action")

select case action

'添加记录
'从产品展示页面“购买”链接过来的
case "add"
productID=HTMLEncode(request.querystring("id"))
set rs=conn.execute("select * from product where id="&productID&"")
if rs.eof then
set rs=nothing
response.write("找不到相应产品!")
response.end
end if

'截取
theid=split(request.cookies("myCartInfo")("proID"),"|")
thenum=split(request.cookies("myCartInfo")("num"),"|")
theprice=split(request.cookies("myCartInfo")("price"),"|")

'清空
response.cookies("myCartInfo")=""

'判断
select case ubound(theid)
 case "-1"
   response.cookies("myCartInfo")("proID")=productID   '产品ID
   response.cookies("myCartInfo")("num")=1   '订购数量
   response.cookies("myCartInfo")("price")=rs("price2")   '单价
   response.cookies("myCartInfo").Expires=Date+7
 case "0"
   if theid(0)=productID then
   response.cookies("myCartInfo")("proID")=theid(0)
   response.cookies("myCartInfo")("num")=thenum(0)+1
   response.cookies("myCartInfo")("price")=theprice(0)
   response.cookies("myCartInfo").Expires=Date+7
   else
   response.cookies("myCartInfo")("proID")=theid(0)&"|"&productID   '产品ID
   response.cookies("myCartInfo")("num")=thenum(0)&"|"&"1"   '订购数量
   response.cookies("myCartInfo")("price")=theprice(0)&"|"&rs("price2")   '单价
   response.cookies("myCartInfo").Expires=Date+7
   end if
 case else
   for mm=1 to ubound(theid)+1
    if theid(mm-1)=productID then '此产品ID己存在
      if request.cookies("myCartInfo")("proID")="" then
        response.cookies("myCartInfo")("proID")=theid(mm-1)
        response.cookies("myCartInfo")("num")=thenum(mm-1)+1
        response.cookies("myCartInfo")("price")=theprice(mm-1)
      else
        response.cookies("myCartInfo")("proID")=request.cookies("myCartInfo")("proID")&"|"&theid(mm-1)
        response.cookies("myCartInfo")("num")=request.cookies("myCartInfo")("num")&"|"&thenum(mm-1)+1
        response.cookies("myCartInfo")("price")=request.cookies("myCartInfo")("price")&"|"&theprice(mm-1)
      end if
      response.cookies("myCartInfo")(""&productID&"hasadd")=1
      response.cookies("myCartInfo").Expires=Date+7
    else
      if request.cookies("myCartInfo")("proID")="" then
        response.cookies("myCartInfo")("proID")=theid(mm-1)
        response.cookies("myCartInfo")("num")=thenum(mm-1)
        response.cookies("myCartInfo")("price")=theprice(mm-1)
        response.cookies("myCartInfo").Expires=Date+7
      else
        response.cookies("myCartInfo")("proID")=request.cookies("myCartInfo")("proID")&"|"&theid(mm-1)   '产品ID
        response.cookies("myCartInfo")("num")=request.cookies("myCartInfo")("num")&"|"&thenum(mm-1)  '订购数量
        response.cookies("myCartInfo")("price")=request.cookies("myCartInfo")("price")&"|"&theprice(mm-1)   '单价
        response.cookies("myCartInfo").Expires=Date+7
      end if
    end if
   next
  
        if request.cookies("myCartInfo")(""&productID&"hasadd")<>"1" then
        response.cookies("myCartInfo")("proID")=request.cookies("myCartInfo")("proID")&"|"&productID   '产品ID
        response.cookies("myCartInfo")("num")=request.cookies("myCartInfo")("num")&"|"&"1"  '订购数量
        response.cookies("myCartInfo")("price")=request.cookies("myCartInfo")("price")&"|"&rs("price2")   '单价
        response.cookies("myCartInfo").Expires=Date+7
        end if
       
end select
set rs=nothing
response.redirect("mycart.asp")

'移除某一商品
case "remove"
theid=split(request.cookies("myCartInfo")("proID"),"|")
thenum=split(request.cookies("myCartInfo")("num"),"|")
theprice=split(request.cookies("myCartInfo")("price"),"|")

response.cookies("myCartInfo")("proID")=""
response.cookies("myCartInfo")("num")=""
response.cookies("myCartInfo")("price")=""

for kk=1 to ubound(theid)+1
if theid(kk-1)=theid(request.querystring("location")) then
else
  if kk=1 then
    response.cookies("myCartInfo")("proID")=theid(kk-1)
    response.cookies("myCartInfo")("num")=thenum(kk-1)
    response.cookies("myCartInfo")("price")=theprice(kk-1)
  else
    if request.cookies("myCartInfo")("proID")="" then
    response.cookies("myCartInfo")("proID")=theid(kk-1)
    response.cookies("myCartInfo")("num")=thenum(kk-1)
    response.cookies("myCartInfo")("price")=theprice(kk-1)
    else
    response.cookies("myCartInfo")("proID")=request.cookies("myCartInfo")("proID")&"|"&theid(kk-1)
    response.cookies("myCartInfo")("num")=request.cookies("myCartInfo")("num")&"|"&thenum(kk-1)
    response.cookies("myCartInfo")("price")=request.cookies("myCartInfo")("price")&"|"&theprice(kk-1)
    end if
  end if
end if
next
response.redirect("mycart.asp")

case "更新数量"
response.cookies("myCartInfo")("num")=""
newNum=HTMLEncode(request.form("num"))

thenum=split(newNum,",")
if ubound(thenum)=0 then
  response.cookies("myCartInfo")("num")=thenum(0)
else
  for p=1 to ubound(thenum)+1
   if p=1 then
   response.cookies("myCartInfo")("num")=thenum(p-1)
   else
   response.cookies("myCartInfo")("num")=request.cookies("myCartInfo")("num")&"|"&trim(thenum(p-1))
   end if
  next
end if
response.redirect("mycart.asp")

case "去结帐"
'转到要求顾客填写收货信息的页面
'在continueBuy.asp页面要调用订购信息的话,可直接向cookies中调用。调用方法与本页方法类似。
response.redirect("continueBuy.asp?action="&server.urlencode("去结帐"))
response.end

case "清空购物车"
response.cookies("myCartInfo")=""

case "继续购物"
response.Redirect("product.asp")

end select
%>

转载于:https://www.cnblogs.com/footleg/archive/2007/10/28/940522.html

基于cookies的小型购物车程序相关推荐

  1. 风力机叶片气动设计 matlab 程序,基于MATLAB的小型风力机叶片设计

    叶片设计 第25卷第5期2007年10月 文章编号:1000-7709(2007)05-0142-03 水电能源科学WaterResourcesandPower V01.25No.50Ct.20 0 ...

  2. 2013年测试基于Web的Spring应用程序(第1部分)

    2013年测试基于Web的Spring应用程序(第1部分) LJCer和TDD / BDD的一位拥护者最近开始使用广受欢迎的Spring堆栈开发应用程序,他就如何最好地在这种情况下实施测试驱动的方法向 ...

  3. 基于SpringBoot点餐小程序的开发【前后端】

    有个小伙伴临时找到小孟,要开发一个点餐的系统,时间比较着急,给了2天的时间. 马马虎虎的搞出来了,头发掉了一撮! 今年找工作真特么难!985 学生涌入现成当公务员,双非的学生搞得压力很大.硕士找不到工 ...

  4. 基于SpringBoot和微信小程序的餐馆点餐系统的设计和实现

    作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue.SpringBoot和微信小程序).系统定制.远程技术指导. ...

  5. 基于VBS的恶搞/表白程序

    引言--什么是VBS VBS是Visual Basic Script的缩写,是一种基于微软Windows操作系统的脚本语言.(就是我们俗称的脚本)它可以在Windows系统上执行许多常见任务,如文件操 ...

  6. java计算机毕业设计基于安卓Android/微信小程序的电脑组装机配置商城APP

    项目介绍 网络的广泛应用给生活带来了十分的便利.所以把组装机配置商城管理与现在网络相结合,利用java技术建设组装机配置商城app,实现组装机配置的信息化.则对于进一步提高组装机配置商城管理发展,丰富 ...

  7. Vue第二天学习总结—— Vue全家桶之组件化开发(组件化开发思想、组件注册、Vue调试工具用法、组件间数据交互传递、组件插槽、基于组件的案例——购物车)

    (一) 组件化开发思想 1. 现实中的组件化思想体现 组件化即是对某些可以进行复用的功能进行封装的标准化工作 标准:要想组件能够成功组合在一起,每个组件必须要有标准 分治:将不同的功能封装到不同的组件 ...

  8. java图书销售系统_基于springboot的小型图书销售系统 源码下载

    源码介绍 本系统采用B/S架构,服务器用的是tomcat服务器,数据库使用mysql,数据库连接池使用的是阿里开源的druid连接池,实现了前后端分离,后端框架基于spring boot整合mybat ...

  9. 基于安卓/android/微信小程序的连锁药店管理系统app-#计算机毕业设计

    项目介绍 随着全球科技的发展,医疗事业也有了很大的进步.医疗事业的进步不仅体现在各类医疗器械和医疗手段上,同时也体现在了药品的多样性上,这就给药房的管理带来了一定的挑战,如果还是使用原始的方式对药房内 ...

最新文章

  1. 计算机管理信息系统大作业,管理信息系统期末大作业
  2. Chevereto图片托管php源码_亲测-分享最新微信付费进群收费进群系统源码-附带搭建教...
  3. mysql悲观锁总结和实践--转
  4. 大熊君大话NodeJS之------Net模块
  5. 高考成绩查询2021年莆田市,2021年莆田高考志愿填报系统入口
  6. 令人纠结的表单设计:水平选项 Or 垂直选项?
  7. python数据可视化之疫情地图爬虫(含完整代码以及具体报告)
  8. cocos2dx交叉编译之Android.mk修改
  9. windows下AV1的编译
  10. 用TELNET登录QQ邮箱
  11. AngularJs基础视频教程 大漠穷秋AngularJs基础教程 AngularJs入门教程
  12. 毛远丽教授谈机器学习技术在检验医学中的新应用|专家论坛
  13. 职场健康:大脑20个已知秘密[转]
  14. XML 是一种元语言, 可以用它来描述其他语言。
  15. Apple watch 心率监测的原理是什么
  16. ios 渐变透明背景_渐变色彩的室内应用技巧
  17. 处理百万位圆周率的txt,用做自己的PI模块
  18. php70w mysql.x8664_悠久防伪防窜货追溯系统php+mysql版.zip
  19. 论文参考文献格式大全
  20. 投资理财-小新分红的意义

热门文章

  1. 纽曼皮尔逊准则Matlab实现,基于聂曼-皮尔逊准则的skip模式快速选择方法
  2. java 静态资源变量_Java中读取配置文件中的内容,并将其赋值给静态变量的方法...
  3. js 删除对象某个属性_JS里的数据类型
  4. vimproc_mac.so” is not found
  5. AndroidStudio3.4.2 gradle5.1.1 apt注解解释器不执行
  6. 开发日记-20190914 关键词 汇编语言王爽版 第七章第八章
  7. 联邦学习的一些使用库
  8. pandas dataframe 做机器学习训练数据=》直接使用iloc或者as_matrix即可
  9. 异常检测——无监督、高斯分布模型,需要带标记的样本数据,基本假设:特征符合高斯分布...
  10. 我的vim 配置——nerdtree、ack vim、vim sneak