制作购物车程序(转)

*****
' To find the actual runtime code scroll WAY DOWN....

' This function is written to enable the adding of multiples of an
item
' but this sample always just adds one. If you wish to add different
' quantities simply replace the value of the Querystring parameter
count.
' We didn't do this because we wanted to keep the whole thing simple
and
' not get into using forms so it stayed relatively readable.
Sub AddItemToCart(iItemID, iItemCount)
If dictCart.Exists(iItemID) Then
dictCart(iItemID) = dictCart(iItemID) + iItemCount
Else
dictCart.Add iItemID, iItemCount
End If
Response.Write iItemCount & " of item # " & iItemID & "
have been added to your cart.

" & vbCrLf
End Sub

Sub RemoveItemFromCart(iItemID, iItemCount)
If dictCart.Exists(iItemID) Then
If dictCart(iItemID) <= iItemCount Then
dictCart.Remove iItemID
Else
dictCart(iItemID) = dictCart(iItemID) -
iItemCount
End If
Response.Write iItemCount & " of item # " &
iItemID & " have been removed from your cart.

" & vbCrLf
Else
Response.Write "Couldn't find any of that item
your cart.

" & vbCrLf
End If
End Sub

Sub ShowItemsInCart()
Dim Key
Dim aParameters ' as Variant (Array)
Dim sTotal, sShipping

%>

Item #DescriptionQuantityRemove Item From CartPriceTotals
>>Remove One HREF="./shopping.asp?action=del&item=&count=(Key) %>">Remove All$>$(dictCart(Key) * CSng(aParameters(2)),2) %>

'Calculate shipping - you might want to pull this out into
a function if your shipping
' calculations are more complicated then ours. ;)
If sTotal <> 0 Then
sShipping = 7.5
Else
sShipping = 0
End If
sTotal = sTotal + sShipping
%>

S+H:ALIGN="Right">$
Total:ALIGN="Right">$

End Sub

Sub ShowFullCatalog()
Dim aParameters ' as Variant (Array)
Dim I
Dim iItemCount ' Number of items we sell
' If you are really going to use this sample this should
probably be pulled from a DB
iItemCount = 3
%>

ImageDescriptionPriceAdd Item To Cart
<%=%20aParameters(0)%20%>$Add this to my cart!

End Sub

Sub PlaceOrder()
Dim Key
Dim aParameters ' as Variant (Array)
Dim sTotal, sShipping

%>

Item #DescriptionQuantityPriceTotals
>>$>$(dictCart(Key) * CSng(aParameters(2)),2) %>

'Calculate shipping - you might want to pull this out into
a function if your shipping
' calculations are more complicated then ours. ;)
If sTotal <> 0 Then
sShipping = 7.5
Else
sShipping = 0
End If
sTotal = sTotal + sShipping
%>

S+H:ALIGN="Right">$
Total:ALIGN="Right">$

End Sub

' We implemented this this way so if you attach it to a database
you'd only need one call per item
Function GetItemParameters(iItemID)
Dim aParameters ' Will contain 3 string values : image path,
description, price
' However we need to keep price
so it can be converted to a
' single for computation hence
no currency symbol. This array
' can also be expanded to
contain any other information about the
' product that you might want to
pull from the DB.
Select Case iItemID
Case 1
aParameters = Array
("./images/shop_shirt.gif", "ASP 101 T-Shirt", "15.00")
Case 2
aParameters = Array
("./images/shop_kite.gif", "ASP 101 Kite", "17.50")
Case 3
aParameters = Array
("./images/shop_watch.gif", "ASP 101 Watch", "35.00")
Case 4 ' Not in use because we couldn't draw a pen
in a few seconds!
aParameters = Array
("./images/shop_pen.gif", "ASP 101 Pen", "5.00")
End Select
' Return array containing product info.
GetItemParameters = aParameters
End Function
%>


' Declare our Vars
Dim dictCart ' as dictionary
Dim sAction ' as string
Dim iItemID ' as integer
Dim iItemCount ' as integer

' Get a reference to the cart if it exists otherwise create it
If IsObject(Session("cart")) Then
Set dictCart = Session("cart")
Else
' We use a dictionary so we can name our keys to correspond
to our
' item numbers and then use their value to hold the
quantity. An
' array would also work, but would be a little more complex
and
' probably not as easy for readers to follow.
Set dictCart = Server.CreateObject("Scripting.Dictionary")
End If

' Get all the parameters passed to the script
sAction = CStr(Request.QueryString("action"))
iItemID = CInt(Request.QueryString("item"))
iItemCount = CInt(Request.QueryString("count"))
%>


' Select action based on user input
Select Case sAction
Case "add"
AddItemToCart iItemID, iItemCount
ShowItemsInCart
%>

SRC="./images/shop_look.gif" BORDER=0 WIDTH=46 HEIGHT=46
ALT="Continue Looking">

SRC="./images/shop_checkout.gif" BORDER=0 WIDTH=46 HEIGHT=46
ALT="Checkout">


Case "del"
RemoveItemFromCart iItemID, iItemCount
ShowItemsInCart
%>

SRC="./images/shop_look.gif" BORDER=0 WIDTH=46 HEIGHT=46
ALT="Continue Looking">

SRC="./images/shop_checkout.gif" BORDER=0 WIDTH=46 HEIGHT=46
ALT="Checkout">


Case "viewcart"
ShowItemsInCart
%>

SRC="./images/shop_look.gif" BORDER=0 WIDTH=46 HEIGHT=46
ALT="Continue Looking">

SRC="./images/shop_checkout.gif" BORDER=0 WIDTH=46 HEIGHT=46
ALT="Checkout">


Case "checkout"
PlaceOrder
%>



Thank you for your order!


If this had been an actual shopping cart, this is
where you would have had them enter
their personal information and payment method and
then taken care of any backend
processing before finalizing their order. However
as this is a shopping cart sample
and this is where security becomes a problem,
we'll leave it for a future sample.
Case Else ' Shop
ShowFullCatalog
%>

SRC="./images/shop_cart.gif" BORDER=0 WIDTH=46 HEIGHT=46 ALT="View
Cart Contents">

End Select

' Return cart to Session for storage
Set Session("cart") = dictCart
%>


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-124749/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-124749/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值