购物车

作者:斐智 来源:未知 添加时间:2006-5-21 10:32:10
  
前阵子自己写的一支购物车的程序.. 
在这里好象没有人提供这样的程序... 
我提供一些开发的重点给大家参考看看.. 
.......................................... 
基本上购物车是用session来作的. 
我的做法是用两个session变量分别来存放商品的编号与数量 
当点选[我要购买]的选择时.会传送商品编号... 
分别编号与数量加入(串接)在这两个变量... 

ps.数量预设为1 
recno=request("recno") 
if recno<>"" then 
if session("product") = "" then 
session("product")=session("product") & recno 
session("quantity")=session("quantity") & "1" 
else 
session("product")=session("product") & "," & recno 
session("quantity")=session("quantity") & "," & "1" 
end if 
end if 

此程序会先判断recno(编号)是否空白.. 
若是第一次点选购物.. 
session("product") and session("quantity") 
便会分别加入 recno的值与1 
第2次点选购物.. 
则会多加 "," 来分隔... 

如此....这两个变量便会存放订购的数据了... 

至于取出的方法如下: 

product=session("product") 
productlist=split(product,",") 
quantity=session("quantity") 
quantitylist=split(quantity,",") 
max=ubound(productlist) 

如此productlist and quantitylist 便会为数组型态.. 
分别存放商品编号与数量,max 则存放该数组中的个数 
所以当要写入数据库时: 
k=0 
while k<max 
rs.addnew 
rs("product")=productlist(k) 
rs("quantity")=quantitylist(k) 
rs.update 
k=k+1 
wend 
这样便可将订单分别存入数据库中.... 

修改购物车的内容则是: 

原则上是将它还原显示出在网页上.. 
一样先分隔开... 
product=session("product") 
productlist=split(product,",") 

quantity=session("quantity") 
quantitylist=split(quantity,",") 

max=ubound(productlist) 
然后显示.... 

<form action=refresh.asp method=post>" 
<%i=0 
while i<max%> 
<input name="Confirm<%=i%>" type="checkbox" checked></td> 
<input name="Quantity<%=i%>" size="2" value="<%=quantity%>" > </td> 
<%i=i+1 
wend%> 
</form> 
有[确认](confirm)与数量(quantity)两个字段可变更(不清楚的请参考拍卖王吧...) 
当按下更改时 
<refresh.asp> 
product=session("product") 
productlist=split(product,",") 

quantity=session("quantity") 
quantitylist=split(quantity,",") 

max=ubound(productlist) 
session("product")="" 
session("quantity")="" 
i=0 
while i <= max 
Confirm=Request( "Confirm" & i) 
quantity=request("quantity" & i) 
if confirm="on" then 
if session("product") = "" then 
session("product")=session("product") & productlist(i) 
session("quantity")=session("quantity") & quantity 
else 
session("product")=session("product") & "," & productlist(i) 
session("quantity")=session("quantity") & "," & quantity 
end if 
end if 
i=i+1 
wend 

基本上就是将两个session的变量重新整理.. 
只是confirm<>on(点选),便不会加入session变量中 

站内搜索