2个回答
展开全部
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 | <?php class CartTool { private static $ins = null; private $items = array (); final protected function __construct() { } final protected function __clone() { } // 获取实例 protected static function getIns() { if (!(self:: $ins instanceof self)) { self:: $ins = new self(); } return self:: $ins ; } // 把购物车的单例对象放到session里 public static function getCart() { if (!isset( $_SESSION [ 'cart' ]) || !( $_SESSION [ 'cart' ] instanceof self)) { $_SESSION [ 'cart' ] = self::getIns(); } return $_SESSION [ 'cart' ]; } /* 添加商品 param int $id 商品主键 param string $name 商品名称 param float $ 商品价格 param int $num 购物数量 */ public function addItem( $id , $name , $price , $brand , $thumb , $num =1) { if ( $this ->hasItem( $id )) { // 如果该商品已经存在,则直接加其数量 $this ->incNum( $id , $num ); return ; } $item = array (); $item [ 'id' ] = $id ; $item [ 'name' ] = $name ; $item [ 'price' ] = $price ; $item [ 'brand' ] = $brand ; $item [ 'thumb' ] = $thumb ; $item [ 'num' ] = $num ; $this ->items[ $id ] = $item ; return $this ->items[ $id ]; } /* 修改购物车中的商品数量 param int $id 商品主键 param int $num 某个商品修改后的数量,即直接把某商品的数量改为$num */ public function modNum( $id , $num =1) { if (! $this ->hasItem( $id )) { return false; } $this ->items[ $id ][ 'num' ] = $num ; } /* 商品数量增加1 */ public function incNum( $id , $num =1) { if ( $this ->hasItem( $id )) { $this ->items[ $id ][ 'num' ] += $num ; } } /* 商品数量减少1 */ public function decNum( $id , $num =1) { if ( $this ->hasItem( $id )) { $this ->items[ $id ][ 'num' ] -= $num ; } // 如果减少后,数量为0了,则把这个商品从购物车删掉 if ( $this ->items[ $id ][ 'num' ] < 1) { $this ->delItem( $id ); } } /* 判断某商品是否存在 */ public function hasItem( $id ) { return array_key_exists ( $id , $this ->items); } /* 删除商品 */ public function delItem( $id ) { unset( $this ->items[ $id ]); } /* 查询购物车中商品的种类 */ public function getCnt() { return count ( $this ->items); } /* 查询购物车中商品的个数 */ public function getNum() { if ( $this ->getCnt() == 0) { return 0; } $sum = 0; foreach ( $this ->items as $item ) { $sum += $item [ 'num' ]; } return $sum ; } /* 查询购物车中商品的总金额 */ public function getPrice() { if ( $this ->getCnt() == 0) { return 0; } $price = 0.0; foreach ( $this ->items as $item ) { $price += $item [ 'num' ] * $item [ 'price' ]; } return $price ; } /* 返回购物车中的所有商品 */ public function all() { return $this ->items; } /* 清空购物车 */ public function clear() { $this ->items = array (); } } |
以上是类文件,需要引入的。
1 2 3 4 5 6 7 8 9 10 | $cart = CartTool::getCart(); $car_goods_list = $cart ->all(); //获取商品列表 $goods_num = $cart ->getNum(); //商品个数 $goods_sum_price = $cart ->getPrice(); //总价格 $cart ->addItem( $goods_id , $goods_list [ 'goods_name' ], $goods_list [ 'shop_price' ], $goods_list [ 'brand' ], $goods_list [ 'goods_thumb' ], $num ); //增加一件商品到购物车 $cart ->clear(); //清空购物车 |
追问
这个是购买商品页面,商品不是再同一个页面点击到购物车的。单独一个产品传到购物车,然后点击另外一个产品继续加到购物车。怎么把参数传到购物车页面显示出来。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询