日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

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

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

更新時間:2022-04-26 文章作者:未知 信息來源:網絡 閱讀次數:

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

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

 
//******構造函數
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();
 
}
 
//********私有,根據session的值更新類中相應數據
function update(){
session_start();//初始化一個session
$myCart = $_SESSION["myCart"];
if(false==$myCart)
{
$this->sortCount = 0;
$this->totalCost = 0;
$this->myCart = array();
return false;
}
//得到商品的總數量
$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;

}
 
}
 
/**
* 格式化數字為貨幣數據
*
*
**/
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;

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

}
/**
* 向購物車中添加一組商品,如果沒有,進行添加,如果已經存在,則更新為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);
//設置購物車中的數量
$myCart[$id]["name"]= $name;
$myCart[$id]["price"] = $price;
$myCart[$id]["count"] = $count;
}
$_SESSION["myCart"] = $myCart;
//更新一下類的成員數據
$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();
}
}
//將一件商品的數量減1
function removeOne($id)
{
$count = $this->myCart[$id]["count"];
if($count>0)
{
$this->modifyCount($id, --$count);
}
 
}
 
//改變商品的個數,如果傳入單價,則一起更改單價
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()函數,所以這個清空函數不完善,
只是把每種商品的個數置為0。
如果是在linux下,可以直接用session_destroy()來做。
*****************************/
function emptyAll()
{
 session_start();//初始化一個session
$myCart = $_SESSION["myCart"];

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

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

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

?> 

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

本類教程下載

系統下載排行

主站蜘蛛池模板: 国产福利在线观看第二区 | 亚洲免费中文 | 久久伊人网站 | 色网站免费在线观看 | 国产在线不卡免费播放 | 日韩国产精品欧美一区二区 | 日本免费视频观看在线播放 | 亚洲欧美综合在线观看 | 亚洲精品一区二区三区四 | 欧美日韩精品 | 亚洲人xxx日本人18 | 日韩色视频 | 久久免费视频在线 | 欧美younv极品free | 亚洲精品中文一区不卡 | 国产午夜不卡在线观看视频666 | 步兵社区在线观看 | 久久视屏这里只有精品6国产 | 亚洲日本欧美日韩高观看 | 国产成人亚洲精品蜜芽影院 | 久久一区二区三区四区 | 久久韩国 | 自拍偷拍 欧美日韩 | 亚洲精品国产一区二区三区四区 | 亚洲高清不卡 | 国产精品嫩草研究所永久网址 | 久久91精品国产91 | 毛片在线视频 | 久久亚洲精品国产精品777777 | 欧美xxx国产xxx | 天天躁日日躁狠狠躁中文字幕老牛 | 免费高清欧美一区二区视频 | 人人爱人人舔 | 国产精品视频免费在线观看 | 日韩免费片 | 亚洲国产精品久久久久婷婷软件 | 天天上天天干 | 911国产自产精品a | 成人免费一区二区三区 | 精品久久久久久中文字幕网 | 日本亚洲成人 |