网上购物篮程序(session对象的灵活运用)
呵呵,见标题,莫相笑,我这里的程序,可都不是xx的。因为都没有经过简化和精简。其中可能也有不少的毛病。然,这里面的,我都是经查阅资料自创,自编。都经过调试得出结果了的。只愿拿出来和大家一起分享吧。路还长着呢,且叫作做程序的一个序幕,书山有路勤为径,学海无边苦作舟吧。
先写一个购物挑选商品的一个界面吧。把它命为:shop_book.asp
<"
CODEPAGE="936"%>
<!--#include
file="Function.asp"-->
<!--这里要引用别一个ASP页面,将它包含过来
-->
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "">
<html xmlns="">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312" />
<title>BOOK-首页</title>
</head>
<body>
<div align="center">
<%
dim aParameters
dim I
dim iItemCount
iItemCount=4
%>
<table width="600" border="1"
align="center" cellpadding="3"
cellspacing="1">
<tr
bgcolor="#66ccff">
<td><div
align="center">封面</div></td>
<td><div
align="center">书名</div></td>
<td><div
align="center">价格</div></td>
<td><div
align="center">是否购买</div></td>
</tr>
<%
'输出书的封面,名称,价格,是否购买,里面用到的函数下面会有。
For
I=1 to iItemCount
aParameters=GetItemParameters(I)
%>
<TR
BGCOLOR ="#66CCFF">
<TD><IMG
SRC="<%=Aparameters(0)%>"></td>
<td><%=
aParameters(1)
%></td>
<td>¥<%=
aParameters(2)
%></td>
<td><a
href="shop_cart.asp?action=add&item=<%=I%>&count=1">加入我的购物篮</a></td>
</tr>
<%Next%>
<Tr
bgcolor="#ffffff">
<td
colspan="4"><div
align="right">
<a
href="logout.asp">注销(将xx全部商品)</a>
<!--又是一个注销的ASP页面 -->
<a
href="shop_cart.asp"><img
src="images/shop_cart.gif" border=0 width=100 height=25
alt="查看购物篮"></a><!--另一个查看购物篮的页面
-->
</div></td>
</tr>
</table>
</div>
</body>
</html>
下面是一个shop_cart.asp,输出自己所购的书籍,还有价格等:
<"
CODEPAGE="936"%>
<!--#include
file="function.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "">
<html xmlns="">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<div align="center">
<%
iItemID=CInt(request.QueryString("item"))
iItemCount=CInt(request.QueryString("count"))
sAction=Cstr(request.QueryString("action"))
select case sAction
case "add"
call
AddItemToCart(iItemID,iItemCount)
case "del"
call
RemoveItemFromCart(iItemID,iItemCount)
end select
dim key
dim aParameters
Dim sTotal
%>
<table width="700" border="1" cellpadding="3"
cellspacing="1" bgcolor="#6699ff">
<tr
bgcolor="#66ccff">
<td><div
align="center">编号</div></td>
<td><div
align="center">书名</div></td>
<td><div
align="center">数量</div></td>
<td><div
align="center">从购物栏中删除</div></td>
<td><div
align="center">价格</div></td>
<td><div
align="center">总价</div></td>
</tr>
<%
sTotal=0
For Each Key in dictCart
aParameters=GetItemParameters(Key)
%>
<tr
bgcolor="#66ccff">
<td
align="center"><%=key%></td>
<td
align="left"><%=aParameters(1)%></td>
<td
align="center"><%=dictCart(key)
%></td>
<td
align="right">¥<%=
aParameters(2)%></td>
<td align="left">
<a
href="shop_cart.asp?action=del&item=<%=Key%>&count=1">删除一个</a>
<a
href="shop_cart.asp?action=del&item=<%=key%>&count=<%=dictcart(key)%>">全部删除</a></td>
<td
align="right">¥<%=
FormatNumber(dictCart(Key)*CSng(aParameters(2)),2)%></td>
</tr>
<%
sTotal=sTotal+(dictCart(key)*CSng(aParameters(2)))
next
%>
<tr
bgcolor="#66ccff">
<td colspan="5"
align="right"><b>Total:</b></td>
<td
align="right">¥<%=
formatnumber(sTotal,2)
%></td>
</tr>
<tr
bgcolor="#ffffff">
<td colspan="5" align="right">
<a href="shop_book.asp">
<img src="images/shop_look.gif" border="0"
width="75" height="45" alt="继续购物"
/></a>
<a href="shop_over.asp">
<img src="images/shop_checkout.gif" border="0"
width="100" height="25" alt="结帐"
/></a>
</td>
</tr>
</table>
<%
sub AddItemToCart(iItemID,iItemCount)
if dictCart.Exists(iItemID)
then
dictcart(iItemID)=dictcart(iItemID)+iItemCount
else
dictcart.add
iItemID,iItemCount
End if
Response.Write("编号为"&iItemID&"的书也加入你的购物篮<br><br>")
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&"本编号为"&iItemID&"的书也从购物篮中删除<br><br>")
else
response.Write("你的购物篮中没有任何商品<br><br>")
end if
end sub
%>
</div>
</body>
</html>
以下是一个购书后的结帐程序:shop_over.asp:
<"
CODEPAGE="936"%>
<!--#include
file="Function.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "">
<html xmlns="">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<div align="center">
<%
dim key
dim aParameters
Dim sTotal
%>
<table width="600" border="1"
cellpadding="3" cellspacing="1"
bgcolor="#6699ff">
<tr
bgcolor="#66ccff">
<td
>编号</td>
<td>书名</td>
<td>数量</td>
<td>价格</td>
<td>总价</td>
</tr>
<%
sTotal=0
For each Key in dictCart
aParameters=GetItemParameters(Key)
%>
<tr
bgcolor"#66ccff">
<td
align="Center"><%=key%></td>
<td align="left"><%=
aParameters(1)
%></td>
<td
align="Center"><%=dictCart(key)%></td>
<td
align="right">¥<%=aParameters(2)%></td>
<td
align="right">¥<%=FormatNumber(dictcart(key)*CSng(aParameters(2)),2)%></td>
</tr>
<%
sTotal=sTotal+(dictcart(key)*CSng(aParameters(2)))
next
%>
<tr
bgclor="#66ccff">
<td colspan=4
align="right"><B>Total:</B></td>
<td
align="right">¥:<%=Formatnumber(sTotal,2)%></td>
</tr>
<tr
bgcolor="#ffffff">
<td colspan=6 align="right"
bgcolor="#ffffff">
<a
href="shop_book.asp">
<img src="images/shop_look.gif"
alt="继续购物" width="75" height="45" border="0"
/>
</a>
<a
href="shop_cart.asp">
<img src="images/shop_cart.gif"
alt="查看购物篮" width="100" height="25"
/>
</a>
</td>
</tr>
</table>
谢谢惠顾!您购买商品总价为:<%=FormatNumber(sTotal,2)%>元!
</div>
</body>
</html>
下面这个便上面的程序包含的一个关键的函数的程序:function.asp :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "">
<html xmlns="">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312" />
<title>function函数</title>
</head>
<body>
<%
dim dictCart,sAction,iItemID
if Isobject(session("cart")) then
set
dictCart=session("cart")
else
set
dictCart=server.CreateObject("Scripting.Dictionary")
End if
set session("cart")=dictCart
Function GetItemParameters(iItemID)
Dim aParameters
Select Case iItemID
Case 1
aParameters=Array("images/01.jpg","《三国演义》","28.00")
Case 2
aParameters=Array("images/02.jpg","《红楼梦》","35.00")
Case 3
aParameters=Array("images/04.jpg","《西游记》","25.00")
Case 4
aParameters=Array("images/03.jpg","《水浒传》","30.00")
End Select
GetItemParameters=aParameters
End Function
%>
</body>
</html>
下面这个就不用说了。是注销的程序:
<"
CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "">
<html xmlns="">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<%
session.Abandon()
response.Redirect("shop_book.asp")
%>
</body>
</html>
选定{dy}个程序运行,就可以看到购物篮的效果了。。呵呵。。。