亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        “網(wǎng)上商店”中購物車的實現(xiàn)

        2008-12-31 00:00:00李順云韓洪杰
        商場現(xiàn)代化 2008年21期

        [摘要] 本文主要內(nèi)容是購物車的實現(xiàn)與修改,采用ASP技術中的內(nèi)置對象Session來實現(xiàn)網(wǎng)站中購物車的功能。

        [關鍵詞] ASP Session 購物車

        一、前言

        購物車是“網(wǎng)上商店”中的重要組成部分,其功能主要是記錄并累加客戶購買商品的相關信息,在客戶確認后將這些信息送入后臺數(shù)據(jù)庫。因此,為客戶提供一個方便、個性化的購物車將會大大提高客戶在網(wǎng)上購物的興趣。

        二、程序設計基礎

        購物車的實現(xiàn)主要采用的是ASP技術,ASP(ActiveSeverPages動態(tài)網(wǎng)頁)是一個位于服務器端的腳本運行環(huán)境。

        ASP提供了一組可以在腳本中使用的內(nèi)置對象,其中Session對象可以存儲特定客戶會話所需的信息。當客戶在應用程序的 Web頁之間跳轉(zhuǎn)時,存儲在Session對象中的變量將不會丟失,而是在整個客戶會話中一直存在下去。

        Session的工作原理:在一個應用程序中,當客戶端啟動一個Session時,ASP會自動產(chǎn)生一個長整數(shù)SessionID,并把這個SessionID送給客戶端瀏覽器,瀏覽器會把SessionID存放在Cookies內(nèi),當客戶端再次向服務器端送出HTTP請求時,ASP會去檢查申請表頭的SessionID,并返回該SessionID對應的Session信息。

        三、購物車的實現(xiàn)

        1.構建購物車

        為處理客戶訂購商品的操作,自定義兩個Session屬性,分別是“spid”(用來保存商品名稱)和“num”(用來保存相應商品的訂購數(shù)量)。當客戶訂購了一種商品后,分三種情況對Session進行處理:

        (1)購物車為空,即Session(“spid”)=“”,直接將spid與num加入Session;

        (2)購物車非空且當前訂購的商品是購物車中沒有的,則處理方法同上;

        (3)購物車非空但當前訂購的商品是購物車中已有的,Session保持不變。

        程序?qū)崿F(xiàn)的要點是如何判別當前訂購的商品在購物車中是否存在,因此,首先要將Session變量的內(nèi)容拆分并存入數(shù)組:

        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相同。

        2.購物車的顯示

        顯示客戶已經(jīng)購買的商品信息,即顯示Session變量的內(nèi)容。只要將Session變量的內(nèi)容拆分,存入數(shù)組中,再顯示數(shù)組的內(nèi)容即可。購物車的顯示界面如圖所示,其中“數(shù)量”欄的類型為“text”,“取消本商品”欄的類型為“checkbox”。這兩欄的數(shù)據(jù)是可以變動的,在“取消本商品”欄中打“√”,再按“重新計算”,將在購物車中取消該商品。

        實現(xiàn)顯示購物車的部分代碼如下:

        <%

        dim k

        array1=split(Session(“spid”),“:”)

        array2=split(Session(“num”),“:”)

        k=0

        do while k<ubound(array1) %>

        <tr>

        <td><p align=“center”><%=array1(k)%>

        </p></td>

        <td><p><input type=“text” name=“t1” size=“5” value=“<%=array2(k)%>”></p></td>

        <td><p><input type=“checkbox” name=

        “ifcancel” value=<%=k%> ></p></td></tr>

        <% k=k+1

        loop %>

        <tr>

        <td align=center>

        <input type=“submit” name=“submit” value=“重新計算”

        onclick=“return recal(this.form)”></td>

        <td align=center colspan=“4”>

        <input type=“submit” name=“Submit” value=“繼續(xù)購買”

        onclick=“return onback(this.form)”></td>

        </tr>

        3.購物車的修改

        在客戶點擊“重新計算”按鈕后,需要對購物車的內(nèi)容進行修改,包括對數(shù)量的修改和將被取消的商品從Session中刪除。

        對于數(shù)量的修改,只要將文本框中被變動過的數(shù)據(jù)重新存入Session中即可:

        <%

        array=split(Session(“num”),“:”)

        if Request.Form(“t1”)<>“”then

        Session(“num”)=“”

        j=0

        for each item in Request.Form(“t1”)

        array(j)=item

        j=j+1

        next

        for i=0 to ubound(array)-1

        Session(“num”)=Session(“num”)&array(i)&“:”

        next

        end if %>

        要從Session中刪除被選中的商品,首先要取得“checkbox”的返回值,它用來定位被取消的商品在Session變量中的位置?!癱heckbox”的返回值k是一個循環(huán)變量,是商品所在行的行數(shù),其實也就是被選中商品在Session中的位置。如果不加返回值定義的話,“checkbox”的返回值是按自然數(shù)順序排列的。例如,在圖中所示的情況下,如果“ASP動態(tài)網(wǎng)頁設計”和“SQL Server 2000數(shù)據(jù)庫管理與開發(fā)”兩行被選中,若是“checkbox”不加返回值定義,它的返回值將分別為1和2,這樣就會導致把“ASP動態(tài)網(wǎng)頁設計”和“JSP核心技術”從Session中刪除的錯誤。

        <% dim array1,array2,ifcancel(20),m1,m2,i,j

        array1=split(Session(“spid”),“:”)

        array2=split(Session(“num”),“:”)

        m1=ubound(array1)-1

        m2=ubound(array2)-1

        ’保存復選框checkbox的值

        for i=1 to Request.Form (“ifcancel”).Count

        ifcancel(i)=Request.Form (“ifcancel”)(i)

        next

        for i=1 to Request.Form (“ifcancel”).Count

        ’將checkbox選中的spid和num從Session中去掉

        for j=ifcancel(j) to m1-1

        array1(j)=array1(j+1)

        array2(j)=array2(j+1)

        next

        m1=m1-1

        for p=i to Request.Form (“ifcancel”).Count

        ifcancel(p)=ifcancel(p)-1

        next

        Session(“spid”)=“”

        Session(“num”)=“”

        for j=0 to m1

        Session(“spid”)=Session(“spid”)&array1(j)&“:”

        Session(“num”)=Session(“num”)&array2(j)&“:”

        next

        next %>

        四、總結

        本文是用數(shù)組實現(xiàn)要顯示的商品信息。但在實際的系統(tǒng)開發(fā)中,這些商品信息的數(shù)據(jù)庫應來自后臺數(shù)據(jù)庫。還應該設置Session對象的TimeOut屬性值,以延長Session對象的生命周期。

        參考文獻:

        [1]趙增敏朱粹丹趙朱曦:《ASP動態(tài)網(wǎng)頁設計》.電子工業(yè)出版社,2005年6月

        [2]吳鵬丁利群:《ASP程序設計教程與實訓》.北京大學出版社,2006年1月

        [3]石碩:《網(wǎng)站設計與管理教程》.清華大學出版社,2007年1月

        国产不卡视频一区二区三区| 高清av一区二区三区在线| 邻居少妇太爽在线观看| 亚洲精品在线国产精品| 中文无码久久精品| 亚洲AV永久无码精品导航| 亚洲中文字幕在线精品2021| 国产精品第一二三区久久| 中文乱码字慕人妻熟女人妻| 天天综合久久| 青青草在线成人免费视频| av剧情演绎福利对白| 国产如狼似虎富婆找强壮黑人| 精品国产亚洲一区二区在线3d| 高清亚洲成av人片乱码色午夜 | 大地资源中文第3页| 亚洲欧美日韩一区在线观看| 国产av91在线播放| 日韩精品极品免费视频观看| 最新系列国产专区|亚洲国产| 国产视频导航| 日韩乱码精品中文字幕不卡| 免费的日本一区二区三区视频| 玩弄放荡人妻少妇系列| 欧美日韩一线| 一区二区三区日韩蜜桃| 国产精久久一区二区三区| 日本精品一区二区三区在线视频 | 色噜噜亚洲精品中文字幕| 久久精品无码一区二区日韩av| 久久久久亚洲av无码a片软件| 一区二区无码精油按摩| 中文字幕丰满人妻av| 女人让男人桶爽30分钟| аⅴ天堂国产最新版在线中文| 国产午夜三级精品久久久| 中国无码人妻丰满熟妇啪啪软件| 又爽又黄禁片视频1000免费| 99久久亚洲精品加勒比| 国产午夜激无码av毛片不卡| 亚洲学生妹高清av|