一段ASP購物車的代碼解釋

arrCart = Session("myCart") '/// 賦值arrCart 等於 myCart 這個服務器變量
CartIndex = Session("cartIndex") '/// 賦值 CartIndex 等於 CartIndex 這個服務器變量
count=0 '/// 賦值 count = 0
for i=0 to CartIndex '/// 一個循環開始,起點為i=0,終點為i=CartIndex
if arrCart(i,2)<>"" then '/// 如果arrCart這個二維數組中的第i,2項的值不為空,那麼。。。
if arrCart(i,2)>0 then '/// 如果 arrCart這個二維數組中的第i,2項的值大於0,那麼。。。
count=count+1 '/// 重新賦值count為原count再加上1
end if '/// 結束一個判斷
end if '/// 同上
next '/// 結束一個循環

idbook = request.form("idbook") '/// 賦值 idbook 等於 idbook 這個表單值
bookname = request.form("bookname") '/// 類上
purchase = request.form("purchase") '/// 類上
availstock = request.form("availstock") '/// 類上
if purchase <>"" then '/// 如果purchase不為空,那麼。。。
purchase=Cint(purchase) '/// 把purchase強制轉換為整型變量
availstock=availstock '/// 變量傳遞(同名變量,不知這步有什麼意義@@!)
if purchase>availstock then '/// 如果 purchase 大於 availstock 那麼。。。
htmlcode="你購買的數量超過了庫存圖書的數量! <a href=""viewitem.asp?idbook="&idbook&"&bookname="&bookname&""">返回</a>"
'/// 賦值 htmlcode
response.write htmlcode '/// 輸出htmlcode這個值到頁面上
else '/// 否則(不滿足上面 purchase>availstock的時候)
if purchase>0 then '/// 如果 purchase>0 那麼。。。
call openDB() '/// 調用 openDB 這個過程(貌似是一個打開記錄集的過程)
sql="select price,discount from books where idbook="&idbook&" and bookname='"&bookname&"'"
'/// 定義一個sql語句
set rs=conn.execute(sql) '/// 調用一個sql(這里是一個查詢sql)
nowprice=rs("price")*(100-rs("discount"))/100
arrCart(CartIndex,0) = idbook
arrCart(CartIndex,1) = bookname
arrCart(CartIndex,2) = purchase
arrCart(CartIndex,3) = nowprice
session("myCart") = arrCart
CartIndex = CartIndex + 1
Session("cartIndex") = CartIndex
'/// 上面這幾句都是變量傳遞,沒什麼好解釋的
call closeDB() '/// 調用 closeDB這個過程(應該是關閉記錄集的過程吧)
end if '/// 結束一個判斷
response.redirect "showcart.asp" '/// 轉向到 showcart.asp 這個頁面
end if
else 否則(這里比較遠,是不滿足那個purchase<>""的時候)
response.write"你沒有選擇圖書數量!" '/// 輸出“你沒有。。。”到頁面
end if
%>

【其實你的問題的重點在下面這里】

在global.asa里面有:
SUB Session_OnStart '/// 一個會話開始的時候
Session("idcustomer") = "" '/// 置空該值
Session("adminname") = "" '/// 置空該值
Session("cartIndex") = Cint(0) '/// 賦值服務器變量cartIndex為整型的數字0
ReDim arrcart(50,3) '/// 定義一個二維數組arrcart
Session("myCart") = arrcart '/// 賦值服務器變量myCart等於arrcart這個二維數組
END SUB

SUB Session_OnEnd '/// 一個會話結束的時候(后面都是清空服務器變量的,沒什麼好解釋)
set Session("idCustomer") = Nothing
set Session("adminname") = Nothing
set Session("cartIndex") = Nothing
set Session("myCart") = Nothing
END SUB

arrCart,myCart其實都是用來存貯一個東西:購物車里的貨物的資訊(用二維數組來存貯)
cartIndex,其實就是你購物車里的貨物數量,用來當做上面這個二維數組的游標的

arrow
arrow
    全站熱搜

    sleepingwolf 發表在 痞客邦 留言(0) 人氣()