久久―日本道色综合久久,亚洲欧美精品在线,狼狼色丁香久久婷婷综合五月,香蕉人人超,日本网站黄,国产在线观看不卡免费高清,无遮挡的毛片免费

2025年度未來銀行科技服務(wù)商TOP100
全世界各行各業(yè)聯(lián)合起來,internet一定要實(shí)現(xiàn)!

用ASP設(shè)計(jì)購(gòu)物推車

2004-02-16 eNet&Ciweek

  什么是購(gòu)物推車?
  你一定去過超級(jí)市場(chǎng)吧。在那里你可以推著推車,將中意的商品放進(jìn)推車,或者把推車?yán)锏纳唐啡〕鰜碇匦路诺截浖?,最后你推著推車去結(jié)賬。
  那么,在網(wǎng)上超市,客戶也應(yīng)該可以在瀏覽商品目錄時(shí),將中意的商品放進(jìn)"電子推車"。電子推車是超級(jí)市場(chǎng)推車的電子化。在網(wǎng)上商店里,這種電子推車又稱為"購(gòu)物推車",英文是Shopping Cart。
購(gòu)物推車的設(shè)計(jì)目標(biāo)
  從程序員的觀點(diǎn)來看,購(gòu)物推車是維護(hù)購(gòu)物者商品選購(gòu)、允許察看、允許修改的一個(gè)對(duì)象。購(gòu)物推車本身是一個(gè)非常簡(jiǎn)單的程序,但開發(fā)者要考慮它將連接到商品目錄子系統(tǒng)、訂單子系統(tǒng)、客戶賬號(hào)子系統(tǒng)、站點(diǎn)管理子系統(tǒng)等等,形成功能完整的網(wǎng)上商店。

下面是購(gòu)物推車的設(shè)計(jì)目標(biāo):
1、 持續(xù)性:購(gòu)物推車應(yīng)該從它的前一次會(huì)話中記住其內(nèi)容。
2、 購(gòu)物推車和客戶相關(guān),而不是和客戶的電腦相關(guān)??蛻艨梢詮牧硗獾碾娔X或?yàn)g覽器來訪問購(gòu)物推車。
3、 當(dāng)新的商品被加入推車或者從推車去掉時(shí),推車的內(nèi)容可以被顯示給用戶。
4、 推車可以容納很多甚至無(wú)限的商品。
系統(tǒng)設(shè)計(jì)/流程設(shè)計(jì)
  在編寫我們的購(gòu)物推車之前,我們看看它的系統(tǒng)架構(gòu)和流程。請(qǐng)看下圖:

  如果客戶從商品目錄中選擇了一件商品,這時(shí)我們傳遞客戶的請(qǐng)求到proxy.asp,同時(shí)傳遞的是動(dòng)作變量"增加商品"。Proxy.asp讀取這個(gè)變量,并決定執(zhí)行購(gòu)物推車的哪個(gè)動(dòng)作。這些動(dòng)作包括:增加商品、更新商品數(shù)量、移除商品或者察看購(gòu)物推車。
  有些動(dòng)作被作為內(nèi)部調(diào)用。如創(chuàng)建推車之前,我們需要檢查推車是否已經(jīng)存在(CheckCart)。在增加、刪除或者更新商品及其數(shù)量時(shí),我們要確認(rèn)此商品是否已經(jīng)存在于我們的購(gòu)物推車之中(CheckItem)。下面我們將為購(gòu)物推車設(shè)計(jì)8個(gè)方法,分別是:
ViewItem 察看推車
CheckCart 檢查推車
CreateCart 創(chuàng)建推車
AddItem(ID, Qty), 增加商品
RemoveItem(ID) 刪除商品
UpdateItem(ID, Qty), 更新數(shù)量
RemoveAll 全部清空
CheckItem(ID) 商品檢查

購(gòu)物推車的設(shè)計(jì)
  購(gòu)物推車需要三個(gè)要素:一個(gè)VBScript 5的類class CartKit,一個(gè)多維數(shù)組mudCart,一個(gè)session變量Session("Cart")。
  這個(gè)VBScript 類,我們稱為CartKit,包含了8個(gè)方法,如上表所示。在本文我們只用了ID和Qty,分別表示商品編號(hào)和數(shù)量。
  這樣我們就可以用一個(gè)二維數(shù)組來表達(dá)這個(gè)推車,象下面這樣:
商品編號(hào) 商品數(shù)量
ID-1 23
ID-3 10
ID-23 6
ID-2 1
然后我們把這個(gè)二維數(shù)組保存到session變量中就可以了。
購(gòu)物推車類CartKit的設(shè)計(jì)
請(qǐng):CartKit.asp
CreateCart設(shè)計(jì):
請(qǐng)看程序代碼:
Class CartKit REM 開始類CartKit的定義
Sub CreateCart()
 IF IsArray(Session("Cart")) = false THEN
  Dim mudCart(19,1)
  Session("Cart") = mudCart
 END IF
End Sub
其中:Session("Cart")保存的就是推車的內(nèi)容。如果推車不存在,我們就定義一個(gè)二維數(shù)組mudCart來表達(dá)推車,并將它保存到session("Cart")中。
CheckCart設(shè)計(jì):
本函數(shù)判斷Cart是否已經(jīng)創(chuàng)建。比較簡(jiǎn)單。
Function CheckCart()
IF IsArray(Session("Cart")) THEN
  CheckCart=True
 ELSE
  CheckCart=False
 END IF
End Function
CheckItem設(shè)計(jì):
請(qǐng)看代碼:
Function CheckItem(ID)
IF CheckCart=True THEN
  varMudCart = Session("Cart")
  FOR i = LBound(varMudCart)TO UBound(varMudCart)
 IF varMudCart(i,0) = ID THEN
  CheckItem=TRUE
 Exit Function
 ELSEIF varMudCart(i,0) <> ID THEN
  CheckItem=FALSE
 END IF
  NEXT
 END IF
End Function
首先判斷推車是否存在。然后將商品的編號(hào)ID和購(gòu)物推車中的商品編號(hào)逐一比較。如果有相等的,返回真。否則為假。
AddItem(ID,Qty)設(shè)計(jì):
請(qǐng)參考本文的附件CartKit.asp,這里介紹的函數(shù)我們把它們封裝到一個(gè)名為CartKit的class中。下面的代碼段首先創(chuàng)建了一個(gè)CartKit對(duì)象,然后檢查推車是否已經(jīng)存在。如果不存在,就創(chuàng)建推車并新增商品;否則,檢查商品編號(hào)是否已經(jīng)存在于Cart中。如果是,就更新數(shù)量;否則,新增商品。
Function AddItem(ID, Qty)
Set CartObj = New CartKit
varCartStatus = CartObj.CheckCart
 IF varCartStatus=false THEN
  CartObj.CreateCart
  mudCart=Session("Cart")
  mudCart(0,0)=ID
  mudCart(0,1)=Qty
  Session("Cart")=mudCart
   Exit Function
 ELSEIF varCartStatus=true THEN
 IF CartObj.CheckItem(ID) = true THEN
  CartObj.UpdateItem ID,Qty
 ELSEIF cartObj.CheckItem(ID) = false THEN
  mudCart = Session("Cart")
 FOR i = LBound(mudCart) TO UBound(mudCart)
 IF mudCart(i,0) = "" THEN
  mudCart(i,0) = ID
  mudCart(i,1) = Qty
  Session("Cart") = mudCart
 Exit Function
 END IF
 NEXT
 END IF
 END IF
End Function
UpdateItem設(shè)計(jì):
Function UpdateItem(ID, Qty)
mudCart = Session("Cart")

 FOR i = LBound(mudCart) TO UBound(mudCart)
  IF mudCart(i,0) = ID THEN
   mudCart(i,1) = Qty
   Session("cart")=mudCart
   Exit Function
  END IF
 NEXT
End Function
ViewItem設(shè)計(jì):
Function ViewItem()
mudCart=Session("Cart")
IF isArray(mudCart) THEN
%>






<%
FOR i = LBound(mudCart) TO UBound(mudCart)
IF mudCart(i,0) <> "" THEN
%>


<%
Response.Write "Item ID: " & mudCart(i,0) & "<--"
Response.Write "
"
Response.Write "Item Qty: " & mudCart(i,1) & "<--"
Response.Write "
"
END IF
NEXT
ELSEIF isArray(mudCart) = False THEN
Response.Write "No item in your cart!"
Response.Write "
"
Response.Write "Y don’t you do shop!"
END IF
End Function
RemoveItem(ID)設(shè)計(jì):
Function RemoveItem(ID)
mudCart=Session("Cart")
’Find the Postion / Index of given ID.
For i = LBound(mudCart) TO Ubound(mudCart)
 IF mudCart(i,0) = ID THEN
  Pos=i
 Exit For
END IF
Next
’Delete Process...
 FOR i = Pos TO UBound(mudCart) - 1
  IF Not mudCart(i,0) = "" THEN
  mudCart(i,0) = mudCart(i+1,0)
 END IF
 Next
 End Function
End Class REM 結(jié)束類CartKit的定義


Item Name Item Quantity
<%=%>

相關(guān)頻道: eNews

您對(duì)本文或本站有任何意見,請(qǐng)?jiān)谙路教峤?,謝謝!

投稿信箱:tougao@enet16.com