zoukankan      html  css  js  c++  java
  • 基于cookies的小型购物车程序

    基于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
    %>

  • 相关阅读:
    88. Merge Sorted Array
    87. Scramble String
    86. Partition List
    85. Maximal Rectangle
    84. Largest Rectangle in Histogram
    83. Remove Duplicates from Sorted List
    82. Remove Duplicates from Sorted List II
    81. Search in Rotated Sorted Array II
    80. Remove Duplicates from Sorted Array II
    计算几何——点线关系(叉积)poj2318
  • 原文地址:https://www.cnblogs.com/footleg/p/940522.html
Copyright © 2011-2022 走看看