手推車”功能的實現

來源:互聯網
上載者:User
手推車”功能的實現

  “手推車”是線上購物網站(零售)中一項重要的功能。本文將要探討用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
%&



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。