• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細頁面

        貼個購物車的類,最大的特點是只用了一個Session

        貼個購物車的類,最大的特點是只用了一個Session

        更新時間:2022-04-26 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        各位可根據(jù)自己需要改一下,最大的特點是只用了一個Session,有的地方是用了以前網(wǎng)上的一個購物車的類改寫的,我也沒有好好地整理過
        <?php
        class cart {

        var $sortCount; //商品種類數(shù)
        var $totalCost; //商品總金額
        /* 所有的商品,如:$myCart[5][$name]:商品編號為5的名稱
        * $myCart[5][$price]:商品編號為5的單價
        *        $myCart[5][$count]:商品編號為5的數(shù)量
        * $myCart[5][$cost]:商品編號為5的合計金額
        */
        var $myCart;
        var $Id;//每類商品的ID(數(shù)組)
        var $Name;//每類商品的名稱(數(shù)組)
        var $Price;//每類商品的價格(數(shù)組)
        var $Count;//每類商品的件數(shù)(數(shù)組)
        var $Cost;//每類商品的價值(數(shù)組)

         
        //******構(gòu)造函數(shù)
        function cart(){
        $this->sortCount = 0;
        $this->totalCost = 0;
        $this->myCart= array();
        session_start();//初始化一個session
        if(session_is_registered("myCart")==false)session_register('myCart'); 
        $this->update();
        //$this->Calculate();
         
        }
         
        //********私有,根據(jù)session的值更新類中相應(yīng)數(shù)據(jù)
        function update(){
        session_start();//初始化一個session
        $myCart = $_SESSION["myCart"];
        if(false==$myCart)
        {
        $this->sortCount = 0;
        $this->totalCost = 0;
        $this->myCart = array();
        return false;
        }
        //得到商品的總數(shù)量
        $this->sortCount=count($myCart);
        if($this->sortCount>0)
        {
        //開始計算商品的金額
        $totalCost = 0;
        foreach($myCart as $key=>$val)
        {
        //先四舍五入
        foreach($val as $proName=>$proVal)
        {
        if($proName !="name")
        {
        $val[$proName] = round(eregi_replace(",", "",$proVal),2);
        $myCart[$key][$proName] = $val[$proName];
        }
        }

        //計算每件商品的金額
        $myCart[$key]["cost"] = round($val["count"]*$val["price"], 2);
        //得到所有商品的金額
        $totalCost += $myCart[$key]["cost"];
        }
        $this->totalCost = $totalCost;
        $this->myCart = $myCart;
        $_SESSION["myCart"] = $myCart;

        }
         
        }
         
        /**
        * 格式化數(shù)字為貨幣數(shù)據(jù)
        *
        *
        **/
        function formatNum($data)
        {
        foreach($data as $key=>$val)
        {
        foreach($val as $sName=>$sValue)
        {
        if($sName !="name")
        {
        $data[$key][$sName] = number_format($sValue, 2);
        }
        }
        }
        return $data;

        }
        //**************以下為接口函數(shù)
         
        //*** 加一件商品
        // 判斷是否藍中已有,如有,加count,否則加一個新商品
        //首先都是改session的值,然后再調(diào)用update() and calculate()來更新成員變量
        function addOne($id,$na,$pr)
        {
        session_start();//初始化一個session
        $myCart = $_SESSION["myCart"];
        //設(shè)置購物車中的數(shù)量
        $myCart[$id]["name"]= $na;
        $myCart[$id]["price"] = $pr;
        ++$myCart[$id]["count"];
        $_SESSION["myCart"] = $myCart;
        //更新一下類的成員數(shù)據(jù)
        $this->update();

        }
        /**
        * 向購物車中添加一組商品,如果沒有,進行添加,如果已經(jīng)存在,則更新為data
        * @param $data- 要添加的商品,格式為:
        * $data[0][id], $data[0][name],
        * $data[0][price],$data[0][count]
        * @return boolean
        */
        function addData($data)
        {
        if(count($data > 0))
        {
        session_start();//初始化一個session
        $myCart = $_SESSION["myCart"];
        foreach($data as $val)
        {
        extract($val);
        //設(shè)置購物車中的數(shù)量
        $myCart[$id]["name"]= $name;
        $myCart[$id]["price"] = $price;
        $myCart[$id]["count"] = $count;
        }
        $_SESSION["myCart"] = $myCart;
        //更新一下類的成員數(shù)據(jù)
        $this->update();
        }
        }
        /*
        * 更改一件商品的單價
        *
        *
        *
        **/
        function updatePrice($id, $price)
        {
        if($price <=0)return false;
        session_start();//初始化一個session
        $myCart = $_SESSION["myCart"];
        if($myCart[$id]==true)
        {
        $myCart[$id]["price"]=$price;

         $_SESSION["myCart"] = $myCart;
        $this->update();
        }
        }
        //將一件商品的數(shù)量減1
        function removeOne($id)
        {
        $count = $this->myCart[$id]["count"];
        if($count>0)
        {
        $this->modifyCount($id, --$count);
        }
         
        }
         
        //改變商品的個數(shù),如果傳入單價,則一起更改單價
        function modifyCount($id, $ncount, $price=0)
        {
        if($ncount <= 0) return false;
        session_start();//初始化一個session
        $myCart = $_SESSION["myCart"];
        if($myCart[$id]==true)
        {
        $myCart[$id]["count"]=$ncount;
        //如果有傳入單價,則一起更改單價
        if($price >0 ) $myCart[$id]["price"]=$price;

         $_SESSION["myCart"] = $myCart;
        $this->update();
        }
         
        }
         
        //清空一種商品
        function emptyOne($i)
        {
        session_start();//初始化一個session
        $myCart = $_SESSION["myCart"];
        unset($myCart[$i]);
        if(count($myCart)==0)
        {
        $this->emptyAll();
        }else{
        $_SESSION["myCart"] = $myCart; 
        $this->update();
        }
        }
         
         
        /***************************
        清空所有的商品
         
        因為在win里PHP不支持session_destroy()函數(shù),所以這個清空函數(shù)不完善,
        只是把每種商品的個數(shù)置為0。
        如果是在linux下,可以直接用session_destroy()來做。
        *****************************/
        function emptyAll()
        {
         session_start();//初始化一個session
        $myCart = $_SESSION["myCart"];

        unset($myCart);
        $_SESSION["myCart"] = $myCart; 
        $this->update();
         
        }
         
        /**
        *返回所有購物車中的數(shù)據(jù)
        *
        **/
        function getData()
        {
        if($this->sortCount > 0)
        {
        return $this->myCart;
        }else{
        return array();
        }
        }
        //取一件商品的信息,主要的工作函數(shù)
        //返回一個關(guān)聯(lián)數(shù)組,下標分別對應(yīng) id,name,price,count,cost
        function getOne($i){
        $data = $this->myCart[$i];
        if(false==$data) return array();

        $data["id"]=$i;
        return $data;

        }
         
        //取總的商品種類數(shù)
        function getSortCount(){
        return $this->sortCount;
        }
         
        //取總的商品價值
        function getTotalCost(){
        return $this->totalCost;
        }
         
        //end class
        }

        ?> 

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 91免费在线播放| 久久亚洲熟女cc98cm| 亚洲精品无播放器在线播放| 国产免费的野战视频| 亚洲天堂电影在线观看| 4399好看日本在线电影免费| 亚洲AV日韩AV永久无码久久| 国产婷婷成人久久Av免费高清 | jizz18免费视频| 中国亚洲女人69内射少妇| 中文字幕成人免费高清在线| 亚洲精品乱码久久久久66| 青青草无码免费一二三区| 亚洲av永久综合在线观看尤物| 亚洲国产精品99久久久久久| 暖暖日本免费在线视频| 深夜福利在线免费观看| 亚洲日本一区二区三区在线不卡| aa在线免费观看| 亚洲美女视频网址| 日本视频免费在线| 国产免费A∨在线播放| 亚洲AV日韩AV永久无码免下载| 五月婷婷综合免费| 免费观看又污又黄在线观看| 亚洲人成中文字幕在线观看 | 妻子5免费完整高清电视| 亚洲高清乱码午夜电影网| 亚洲午夜无码片在线观看影院猛 | 亚洲爆乳精品无码一区二区三区 | 国产一级理论免费版| 国产日韩久久免费影院| 久久久久亚洲精品天堂| 日韩在线视频免费看| 热久久这里是精品6免费观看| 亚洲国产中文在线视频| 亚洲成AV人网址| 男女免费观看在线爽爽爽视频 | 妞干网免费视频在线观看| 国产精品永久免费视频| 亚洲人成激情在线播放|