zoukankan      html  css  js  c++  java
  • session购物车

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    /**
     * 函数:addGoods
     * 功能:将物品放入购物车[SESSION]中
     * 简介:将指定物品信息$goods存入指定名$cartName的购物车中,默认在物品信息首部附加“购物车物品序号”$skey
     * 时间:2011年7月28日 23:51:40
     * 作者:zhjp
     * Enter description here ...
     * 待完善项:在存入购物车之前先进行判断所选物品是否已经存在,是:只修改购买数量、否:存入购物车
     * @param String $cartName
     * @param String $goodsStr
     */ 
    public function addGoods($cartName, $goodsStr){ 
        $skey=count($_SESSION[$cartName]); 
        //处理物品信息 
        $goodsStr=$skey.','.$goodsStr
        switch ($cartName){ 
            case 'flyCart'
                break
            case 'mallCart'
                //配置物品字段,返回可读性更强的数组格式的物品信息 
                $goodsArr=$this->_setGoodsFields($goodsStr); 
                break
            case 'hotelCart'
                break
        
        //物品存入购物车 
        $_SESSION[$cartName][$skey]=$goodsArr
        //更新购物车信息 
        $this->_updateCart($cartName); 
    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    /**
     * 函数:delGoods
     * 功能:删除购物车[SESSION]中的某一物品
     * 简介:根据提供的购物车名$cartName及指定购物车物品序号$skey将该物品记录置空值
     * 时间:2011年7月30日 23:00:59
     * 作者:by zhjp
     * Enter description here ...
     * @param String $cartName
     * @param Int $skey
     */ 
    public function delGoods($cartName, $skey){ 
        if(!isset($_SESSION[$cartName])){ return ; } 
        if($_SESSION[$cartName]['ITEMS']==1){ 
        //  $this->clearAll($cartName); 
        }else
            //删除指定物品 
            $_SESSION[$cartName][$skey]=null; 
        
        //更新购物车信息 
        $this->_updateCart($cartName); 
       
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    /**
     * 函数:clearAll
     * 功能:清空购物车中的所有物品信息
     * 简介:根据提供的购物车名$cartName将该购物车清空
     * 时间:2011年7月30日 23:07:21
     * 作者:by zhjp
     * Enter description here ...
     * @param String $cartName
     */ 
    public function clearAll($cartName){ 
        if(isset($_SESSION[$cartName])){  
            unset($_SESSION[$cartName]); 
        }else
            return
        
    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    /**
         * 函数:editCart
         * 功能:编辑购物车信息[物品购物数量+1-1]
         * 简介:根据提供的购物车名$cartName及操作名$action结合指定购物车物品序号$skey对指定物品的购买数量进行+1-1操作
         * 时间:2011年7月30日 23:09:27
         * 作者:by zhjp
         * Enter description here ...
         * @param String $cartName
         * @param String $action[plus+][minus-]
         * @param Int $skey
         */ 
        public function editCart($cartName, $action, $skey){ 
            if(!isset($_SESSION[$cartName])){return ;} 
            switch ($action){ 
                case 'plus'
                    $this->_plusOne($cartName, $skey); 
                    break
                case 'minus'
                    $this->_minusOne($cartName, $skey); 
                    break
            
            //更新购物车信息 
            $this->_updateCart($cartName); 
        }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /**
         * 函数:searchGoods
         * 功能:查找购物车物品信息
         * 简介:可供添加物品操作调用,如果所添加物品已存在则购物数量+1,反之将物品存入购物车
         * 时间:2011年8月1日19:14:23
         * 作者:by zhjp
         * Enter description here ...
         */ 
        public function searchGoods(){ 
       
        }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    /**
         * 函数:getCartInfo
         * 功能:获取购物车基本信息【二维数组格式呈现TDArr】
         * 简介:将购物车中的基本信息数据转化成二维数组【总项目items】【总数量total】【总金额money】
         * 时间:2011年7月30日 23:14:20
         * 作者:by zhjp
         * Enter description here ...
         * @param String $cartName
         */ 
        public function getCartInfo($cartName){ 
            if(!isset($_SESSION[$cartName])){return ;} 
            $infoArr=array(); 
            if(isset($_SESSION[$cartName])){ 
                $items=$_SESSION[$cartName]['ITEMS']; 
                $total=$_SESSION[$cartName]['TOTAL']; 
                $money=$_SESSION[$cartName]['MONEY']; 
                $infoArr=array('ITEMS'=>$items,'TOTAL'=>$total,'MONEY'=>$money); 
            }else
                unset($infoArr); 
            
            return $infoArr
        }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    /**
         * 函数:getCartList
         * 功能:获取购物车所有的商品数据【二维数组格式呈现TDArr】
         * 简介:将购物车中的全部商品数据转化成二维数组,不带HTML代码符
         * 时间:2011年7月28日 23:56:38
         * 作者:zhjp
         * Enter description here ...
         * @param String $cartName
         */ 
        public function getCartList($cartName){ 
       
            if(isset($_SESSION[$cartName])){ 
                $allGoodsTDArr=array(); 
                foreach ($_SESSION[$cartName] as $k=>$v){ 
                    if(is_array($v)){ 
                        $allGoodsTDArr[]=$v
                    
                
            
            return $allGoodsTDArr
        }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /**
         * 函数:_setGoodsFields
         * 功能:配置物品字段,将一条物品记录字符串转化成有相应字段名的数组
         * 简介:
         * 0   1  2    3    4      5     6
         * key id code name extend price numb money
         * 其中key为购物车商品记录对应的SESSION数组key
         * 时间:2011年7月28日 23:27:59
         * 作者:by zhjp
         * Enter description here ...
         * @param unknown_type $goodsStr
         */ 
        private function _setGoodsFields($goodsStr){ 
            //id,code,name,extend,price 
            $str2Arr=split(',', $goodsStr); 
            $goodsArr=array
                'key'=>$str2Arr[0], 
                'id'=>$str2Arr[1], 
                'code'=>$str2Arr[2], 
                'name'=>$str2Arr[3], 
                'extend'=>$str2Arr[4], 
                'price'=>$str2Arr[5], 
                'numb'=>$str2Arr[6], 
                'money'=>number_format($str2Arr[5]*$str2Arr[6],2)); 
            return $goodsArr
        }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    /**
         * 函数:_plusOne
         * 功能:将物品的购买数量+1
         * 简介:根据提供的购物车物品序号$skey将指定的商品数量+1
         * 时间:2011年7月30日 23:24:26
         * 作者:by zhjp
         * Enter description here ...
         * @param String $cartName
         * @param Int $skey
         */ 
        private function _plusOne($cartName, $skey){ 
            if(!isset($_SESSION[$cartName])){ return ;} 
            //指定物品购买数量+1 
            $_SESSION[$cartName][$skey]['numb']+=1; 
            //更新小计金额 
            $price=$_SESSION[$cartName][$skey]['price']; 
            $numb=$_SESSION[$cartName][$skey]['numb']; 
            $_SESSION[$cartName][$skey]['money']=number_format($price*$numb,2); 
            //更新购物车信息 
            $this->_updateCart($cartName); 
        }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    /**
         * 函数:_minusOne
         * 功能:将物品的购买数量-1
         * 简介:根据提供的购物车物品序号$skey将指定的商品数量-1
         * 时间:2011年7月30日 23:27:19
         * 作者:by zhjp
         * Enter description here ...
         * @param unknown_type $cartName
         * @param unknown_type $skey
         */ 
        private function _minusOne($cartName, $skey){ 
            if(!isset($_SESSION[$cartName])){ return ;} 
            //指定物品购买数量-1 
            if($_SESSION[$cartName][$skey]['numb']>1){ 
                $_SESSION[$cartName][$skey]['numb']-=1; 
                //更新小计金额 
                $price=$_SESSION[$cartName][$skey]['price']; 
                $numb=$_SESSION[$cartName][$skey]['numb']; 
                $_SESSION[$cartName][$skey]['money']=number_format($price*$numb,2); 
            
            //更新购物车信息 
            $this->_updateCart($cartName); 
        }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /**
         * 函数:_countMoney
         * 功能:统计购物车物品总金额
         * 简介:总金额[MONEY]
         * 时间:2011年7月31日 03:17:52
         * 作者:by zhjp
         * Enter description here ...
         * @param String $cartName
         */ 
        private function _countMoney($cartName){ 
            if(!isset($_SESSION[$cartName])){ return ;} 
            $count=0.0; 
            switch ($cartName){ 
                case 'flyCart'
                    break
                case 'mallCart'
                    $cartList=$this->getCartList($cartName); 
                    foreach ($cartList as $k=>$v){ 
                        $count+=$v['money']; 
                    
                    $_SESSION[$cartName]['MONEY']=number_format($count,2); 
                    break
                case 'hotelCart'
                    break
            
        }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    /**
         * 函数:_countItems
         * 功能:统计购物车物品总项目
         * 简介:总项目[ITEMS]
         * 时间:2011年7月31日 03:23:20
         * 作者:by zhjp
         * Enter description here ...
         * @param String $cartName
         */ 
        private function _countItems($cartName){ 
            if(!isset($_SESSION[$cartName])){ return ;} 
            $count=0; 
            switch ($cartName){ 
                case 'flyCart'
                    break
                case 'mallCart'
                    $cartList=$this->getCartList($cartName); 
                    foreach ($cartList as $k=>$v){ 
                        if(is_array($v)){ 
                            $count++; 
                        
                    
                    $_SESSION[$cartName]['ITEMS']=$count
                    break
                case 'hotelCart'
                    break
            
        }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /**
         * 函数:_countTotal
         * 功能:统计购物车物品总数量
         * 简介:总数量[TOTAL]
         * 时间:2011年7月31日 03:27:11
         * 作者:by zhjp
         * Enter description here ...
         * @param String $cartName
         */ 
        private function _countTotal($cartName){ 
            if(!isset($_SESSION[$cartName])){ return ;} 
            $count=0; 
            switch ($cartName){ 
                case 'flyCart'
                    break
                case 'mallCart'
                    $cartList=$this->getCartList($cartName); 
                    foreach ($cartList as $k=>$v){ 
                        $count+=$v['numb']; 
                    
                    $_SESSION[$cartName]['TOTAL']=$count
                    break
                case 'hotelCart'
                    break
            
        }

     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    /**
         * 函数:_updateCart
         * 功能:更新统计购物车基本信息
         * 简介:重新统计购物车基本信息【总项目ITEMS/总金额MONEY/总数量TOTAL]
         * 时间:2011年7月31日 03:31:18
         * 作者:by zhjp
         * Enter description here ...
         * @param String $cartName
         */ 
        private function _updateCart($cartName){ 
            $this->_countItems($cartName); 
            $this->_countMoney($cartName); 
            $this->_countTotal($cartName); 
        }

     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    /* 
    Source Host           : localhost:3306 
    Source Database       : db_xiaohan 
    Target Server Type    : MYSQL 
    Date: 2011-08-05 08:46:10 
    */ 
    SET FOREIGN_KEY_CHECKS=0; 
    -- ---------------------------- 
    -- Table structure for `ixh_mallgoods` 
    -- ---------------------------- 
    DROP TABLE IF EXISTS `ixh_mallgoods`; 
    CREATE TABLE `ixh_mallgoods` ( 
      `id` int(11) NOT NULL AUTO_INCREMENT, 
      `code` varchar(255) DEFAULT NULL
      `name` varchar(255) DEFAULT NULL
      `extend` varchar(255) DEFAULT NULL
      `price` float DEFAULT NULL
      PRIMARY KEY (`id`) 
    ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; 
    -- ---------------------------- 
    -- Records of ixh_mallgoods 
    -- ---------------------------- 
    INSERT INTO ixh_mallgoods VALUES ('1', 'CLELE-GS1001', '商品一', '小尺寸', '22.5');
  • 相关阅读:
    mybatis中#{}和${}的区别 (二)
    JAVA分布式架构的演变及解决方案
    mybatis中的#和$的区别
    https
    vue3的组件v-model初探1
    前端性能优化
    HTTP请求的完全过程
    http缓存详解,http缓存推荐方案
    vscode-setting备份
    Mac电脑在finder中添加- 右键打开vscode
  • 原文地址:https://www.cnblogs.com/lemon66/p/4113537.html
Copyright © 2011-2022 走看看