'更新购物车
sub UpdateCart(key,value)
cart.item(key)=value
end sub
'从购物车中减掉
sub RemoveItemFromCart(key)
if cart.exists(key) then
response.write cart.exists(key)
cart.remove(key)
end if
end sub
'批量移除
sub BatchRemoveCart(keyString)
dim keys,itemkey,i,m
keys=split(keyString,",")
m=ubound(keys)
for i=0 to m
RemoveItemFromCart keys(i)
next
end sub
'输出
sub OutputCart()
for each key in cart.keys
response.write key&"="&cart.item(key)&typename(key)&"<br>"
next
end sub
'清空
sub ClearCart()
cart.removeall
end sub
'由分隔的key/value字符串更新购物车
sub BatchUpdateCart(keyString,valueString)
dim keys,values,itemkey,i,n,t
keys=split(keyString,",")
values=split(valueString,",")
m=ubound(keys)
n=ubound(values)
for i=0 to m
if i>n then t=1 else t=values(i)
UpdateCart keys(i),t
next
end sub
'由dictionary转换为字符串
function GetKeyString()
dim keys
keys=""
if cart.count>0 then
for each key in cart.keys
keys=keys&key&","
next
keys=mid(keys,1,len(keys)-1)
end if
GetKeyString=keys
end function
'取其中一个值
function GetCartItem(key)
t=cart.item(key)
GetCartItem=t
end function
sub UpdateCart(key,value)
cart.item(key)=value
end sub
'从购物车中减掉
sub RemoveItemFromCart(key)
if cart.exists(key) then
response.write cart.exists(key)
cart.remove(key)
end if
end sub
'批量移除
sub BatchRemoveCart(keyString)
dim keys,itemkey,i,m
keys=split(keyString,",")
m=ubound(keys)
for i=0 to m
RemoveItemFromCart keys(i)
next
end sub
'输出
sub OutputCart()
for each key in cart.keys
response.write key&"="&cart.item(key)&typename(key)&"<br>"
next
end sub
'清空
sub ClearCart()
cart.removeall
end sub
'由分隔的key/value字符串更新购物车
sub BatchUpdateCart(keyString,valueString)
dim keys,values,itemkey,i,n,t
keys=split(keyString,",")
values=split(valueString,",")
m=ubound(keys)
n=ubound(values)
for i=0 to m
if i>n then t=1 else t=values(i)
UpdateCart keys(i),t
next
end sub
'由dictionary转换为字符串
function GetKeyString()
dim keys
keys=""
if cart.count>0 then
for each key in cart.keys
keys=keys&key&","
next
keys=mid(keys,1,len(keys)-1)
end if
GetKeyString=keys
end function
'取其中一个值
function GetCartItem(key)
t=cart.item(key)
GetCartItem=t
end function
以上是我在做的一个项目中购物车的实现,其中cart是一个定义在global.asa中的session scope变量,类型为:dictionary
但就是这个dictionary,把我搞晕了
主要是在处理购物车中产品移除时
productidlist=request("ProductIdList").item
得到CHECKBOX 的值,形式是一个逗号分隔的产品ID列表
然后我调用了BatchRemoveCart productidlist
BatchRemoveCart 又调用removecartitem(key)来进行移除操作
但问题就出在这,通过输出,我发现,在实际移除时,发现两个怪事:
1,无规律的某些项目没法移出,不会产生任何错误
2,removecartitem中,判断了项目是否存在,如果存在,则移除,并且,输出判断表达式的值,但我发现,每次VBS判断的isexists的值是false,但它却莫名其妙的执行了remove操作.实在令人费解