asp編程實例:在ASP中實現購物小車

字號:

為了講解方便,突出重點,本文用數組實現要顯示的商品信息。但在實際的系統(tǒng)開發(fā)中,這些商品信息的數據應該來自后臺數據庫。在程序中,我們定義了一個sp數組并對其賦值,然后用一個循環(huán)實現其數據顯示及對下一個程序的數據傳遞。程序部分代碼如下:
     <% i=1
     do while (i<=5) %>
     <tr > <td><%=sp(i)%></td>
     <td><a href=“cart.asp?spid=<%=sp(i)%>”>訂購</a></td> </tr>
     <% i=i+1
     loop %>
     構建購物小車
     為處理用戶訂購商品的操作,我們自定義了兩個Session的屬性,分別是“spid”(用來保存商品名稱)和“num”(用來保存相應商品的訂購數量)。當用戶訂購了一種商品后,我們分三種情況對Session進行處理:
     ●購物小車為空,即Session(“spid")=“",直接將spid與num加入Session;
     ●購物小車非空且當前訂購的商品是購物小車中沒有的,則處理方法同上;
     ●購物小車非空但當前訂購的商品是購物小車中已有的,Session保持不變。
     程序實現的要點是如何判別當前訂購的商品在購物小車中是否存在,因此,首先要將Session變量的內容拆分并存入數組:array1=split(Session(“spid”),“:”) 然后用循環(huán)語句判別array1中是否有元素與傳遞來的spid相同并將結果存入變量ifbuy:
     for i=0 to ubound(array1)-1
     if array1(i)= Request.QueryString(“spid”) then
     ifbuy=true
     exit for
     end if
     next
     將新增的商品信息加入Session:
     Session(“spid”)=Session(“spid”)& Request.
     QueryString(“spid”)&“:”
     Session對象的另一個自定義屬性num的處理同spid相同。
     購物小車的顯示
     顯示用戶已經購買的商品信息,即是顯示Session變量的內容。只要將Session變量的內容拆分,存入數組中,再顯示數組的內容即可。購物小車的顯示界面如圖1所示,其中“數量”欄的類型為“text",“取消本商品”欄的類型為“checkbox”。這兩欄的數據是可以變動的,在“取消本商品”欄中打“√”,再按“重新計算”,將在購物小車中取消該商品。
     “重新計算”和“繼續(xù)購買”兩個命令按鈕用JavaScript實現:
     <script language=“JavaScript">
     <!--
     function onback(theForm)
     {window.history.back() }
     function recal(theForm)
     {theform.action=“modifycart.asp" }
     -->
     </script>