喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

招聘PHP开发人员(北京)

上一主题 下一主题
 23  2/3  <  1  2  3  > 
     
标题: 做个购物车类怎么样?  
 
iny (iny)
中级会员
Rank: 3Rank: 3
中级会员



UID 26569
精华 0
积分 221
帖子 217
金钱 221 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2004-3-1
状态 离线
[广告]: 代充Paypal帐号美元
不错,收藏!
2004-4-22 03:17 PM#11
查看资料  发短消息  顶部
 
yjjqtdht (yjjqtdht)
高级会员
Rank: 4
资深会员



UID 14117
精华 0
积分 715
帖子 715
金钱 715 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2002-5-4
来自 深圳
状态 离线
[广告]: Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
版主老大:
     小弟初学PHP,对购物车不懂,请你从网页到后台程序详细使用讲解一下好吗?
2004-4-27 12:13 PM#12
查看资料  发短消息  顶部
 
火龙sky2号 (火龙sky2号)
金牌会员
Rank: 6Rank: 6
Banned



UID 22969
精华 0
积分 2657
帖子 2654
金钱 2657 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2003-9-5
来自 火龙家族(灌水堂温州总堂)
状态 离线
[推荐阅读] Kao和矿哥的聊天记录
不错,我顶
2004-5-8 06:15 PM#13
查看资料  发短消息  顶部
 
RedCoin (RedCoin)
金牌会员
Rank: 6Rank: 6
资深会员



UID 29099
精华 0
积分 1148
帖子 1147
金钱 1148 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2004-6-3
来自 马路边
状态 离线
[推荐阅读] 药 联
看看我这个,精简一点的

学PHP才1个月,感觉PHP的类生命期都比较短,应该是短小精悍比较合适吧。这个是我写的:

<?php
/************************************************************************
 * 购物车类
************************************************************************/
class Cart
{
    var 
$items;   //--- 购物车明细 ['gId'] => array('price'=>'', 'qty'=>'')
                  //            : ['商品编码'] => array('价格'=>'', '数量'=>'')

    //--- 构造函数
    
function Cart()
    {
        
session_start();
        if(isset(
$_SESSION['items']) && !empty($_SESSION['items']))
            
$this->items $_SESSION['items'];
        else
            
$this->items = array();

        
$this->Init();
    }

    
//--- 初始化必要的参数和设置
    
function Init()
    {}

    
//--- 保存购物车信息到session
    
function UpdateCart()
    {
        if(isset(
$this->items))
            
$_SESSION['items'] = $this->items;
        else
            unset(
$_SESSION['items']);
    }

    
//--- 增加商品
    
function AddItem($gId$price$qty)
    {
        if(isset(
$this->items[$gId])) //--- 商品已存在,增加数量,更新价格
        
{
            
$this->items[$gId]['qty']   += $qty;
            
$this->items[$gId]['price'] = $price;
        }
        else    
//--- 增加新商品
        
{
            
$this->items[$gId] = array('price'=>$price'qty'=>$qty);
        }

        
$this->UpdateCart();
    }

    
//--- 删除商品
    
function RmvItem($gId)
    {
        unset(
$this->items[$gId]);

        
$this->UpdateCart();
    }

    
//--- 改变数量
    
function ChgQty($gId$newQty)
    {
        if(
$newQty <= 0)
            
RmvItem($gId);
        else
        {
            
$this->items[$gId]['qty'] = $newQty;
            
$this->UpdateCart();
        }
    }

    
//--- 清空购物车
    
function EmptyCart()
    {
        unset(
$this->items);

        
$this->UpdateCart();
    }
}
?>
2004-8-1 01:45 PM#14
查看资料  发短消息  顶部
 
RedCoin (RedCoin)
金牌会员
Rank: 6Rank: 6
资深会员



UID 29099
精华 0
积分 1148
帖子 1147
金钱 1148 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2004-6-3
来自 马路边
状态 离线
[推荐阅读] document.all.alert.innerHTML
这个是实际应用扩展的购物车类(删除了部分实现代码)

<?php
/************************************************************************
 * 购物车扩展类,根据实际情况补充必要的代码
************************************************************************/
class MyCart extends Cart
{
    var 
$tplNames;    //--- 模板名称数组
    
var $tplStrs;    //--- 模板内容数组
    
var $settings;    //--- 购物车设置数组

    
function MyCart()
    {}

    
//--- 初始化必要的参数和设置
    
function Init()
    {
        
$this->tplNames = array('Header' => 'TPL_CARTHEADER',
                                
'Body'   => 'TPL_CARTBODY',
                                
'Footer' => 'TPL_CARTFOOTER'
                                
);
        
$this->tplNames = array('Header' => '',
                                
'Body'   => '',
                                
'Footer' => ''
                                
);
        
$this->settings = array();
    }

    
//--- 保存购物车信息到session,
    //    保存购物车简要信息到cookie(品种数cart_ctn,总件数cart_pcs,总额cart_sum)
    
function UpdateCart()
    {
        if(isset(
$this->items))
        {
            
$_SESSION['items'] = $this->items;

            
setcookie('cart_cnt'count($this->items));
            
$pcs 0;
            
$sum 0;
            foreach(
$this->items as $goods)
            {
                
$pcs += $goods['qty'];
                
$sum += $goods['qty'] * $goods['price'];
            }
            
setcookie('cart_pcs'$pcs);
            
setcookie('cart_sum'sprintf('%1.2f'$sum));
        }
        else
        {
            unset(
$_SESSION['items']);

            
setcookie('cart_cnt''0');
            
setcookie('cart_pcs''0');
            
setcookie('cart_sum''0.00');
        }
    }

    
//--- 显示购物车明细,返回生成的HTML文本
    
function ShowCart()
    {
        
$output '';
        
        
/* ... */

        
return $output;
    }

    
//--- 载入模板
    
function LoadTpl()
    {
        return 
true;
    }

    
//--- 输出页面
    
function Execute()
    {
        if(
LoadTpl()) echo ShowCart();
    }
}
?>
2004-8-1 01:47 PM#15
查看资料  发短消息  顶部
 
RedCoin (RedCoin)
金牌会员
Rank: 6Rank: 6
资深会员



UID 29099
精华 0
积分 1148
帖子 1147
金钱 1148 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2004-6-3
来自 马路边
状态 离线
[推荐阅读] 我到底错在哪里
请高人指点一下:blowzy:
2004-8-1 01:47 PM#16
查看资料  发短消息  顶部
 
aries_jo (aries_jo)
金牌会员
Rank: 6Rank: 6
高级会员



UID 21370
精华 0
积分 1570
帖子 1560
金钱 1570 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2003-7-4
来自 广州
状态 离线
[推荐阅读] 这个应该怎么用?
是怎么调用的呢
2004-10-1 06:53 PM#17
查看资料  发短消息  Yahoo!  顶部
 
3945
该用户已被删除









[推荐阅读] 怎么把mysql的函数改成sql的函数?
*** 作者被禁止或删除 内容自动屏蔽 ***
2004-12-27 04:28 AM#18
顶部
 
flytercel (flytercel)
新手上路
Rank: 1
初级会员



UID 19329
精华 0
积分 29
帖子 33
金钱 29 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2003-4-2
状态 离线
[推荐阅读] 可能是配置问题,谁碰到过?
//******构造函数
  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();
    }
函数Calculate()是用来做什么的呀,下面怎么没有这个函数?这样功能够完善么?
2005-6-14 06:08 PM#19
查看资料  发短消息  顶部
 
ustb
注册会员
Rank: 2
中级会员


UID 26170
精华 2
积分 105
帖子 264
金钱 85 喜悦币
威望 20
人脉 0
阅读权限 20
注册 2004-2-15
状态 离线
[推荐阅读] 我也要吃
我也发一个吧,简单点的
好多天没出门了,吃不到绿色食品,眼睛倒是快绿了^_^

<?php
/**
*  类名: cart
*  描述: 购物车
*  其他: 2004-8-19
*/
class cart
{
    
/**
     * 物品
     */
    
var $item;

    
/**
     * 总数
     */
    
var $total;
    
    
/**
     * 构造函数,初始化购物车
     */
    
function cart()
    {
        
$this->item  = array();
        
$this->total 0;
    }

    
/**
     * 添加商品入购物车
     *
     * @param   int     $id     商品ID
     * @param   int     $num    商品数量
     * @param   float   $price  商品单价
     */
    
function addItem($id$num$price)
    {
        
// 如果商品存在就加数量和价格,否则直接加入
        
if(!isset($this->item[$id]))
        {
            
$this->item[$id]["num"]  = (int)$num;
            
$total_cost $this->item[$id]["cost"] = (float)$price * (int)$num;
            
$this->total += $total_cost;
        }
        else
        {
            
$item_count $this->item[$id]["num"]  += (int)$num;
            
$this->item[$id]["cost"] += (float)$price * (int)$item_count;
            
$new_cost = (int)$num $item_price;
            
$this->total += $new_cost;
        }
    }

    
/**
     * 修改商品数量
     *
     * @param   int     $id     商品ID
     * @param   int     $num    商品数量
     * @param   float   $price  商品单价
     */
    
function modItem($id$num$price)
    {
        
$pre_num $this->item[$id]['num'];
        
$cur_num $pre_num $num;
        
$this->item[$id]['cost'] = $num $price;
        
$this->item[$id]['num']  = $num;

        
$this->total -= $cur_num $price;
    }
    
    
/**
     * 取得总价
     */
    
function getTotalCost()
    {
        Return 
$this->total;
    }

    
/**
     * 取得物品总数
     */
    
function getItemNum()
    {
        
$total 0;
        
        foreach(
$this->item as $key=>$val)
        {
            if(isset(
$val['num']))
            {
                
$total += $val['num'];
            }    
        }

        Return 
$total;
    }

    
/**
     * 删除商品
     *
     * @param int $id 商品ID
     */
    
function delItem($id)
    {
        
$this->total -= $this->item[$id]['cost'];
        
$this->item[$id] = array();
    }

    
/**
     * 清空购物车
     */
    
function clear()
    {
        
$this->item  = array();
        
$this->total 0;
    }
}

// 测试
session_start();
if(!isset(
$CartHandler))
{
    
$CartHandler = new cart;
    
$_SESSION['cart'] = $CartHandler;
}

$CartHandler->addItem(1,3,5);
$CartHandler->addItem(2,2,4.5);

echo 
"修改前总数:".$CartHandler->getItemNum()."<br>";
echo 
"修改前总价:".$CartHandler->getTotalCost()."<br>";

$CartHandler->modItem(1,2,5);

echo 
"修改后总数:".$CartHandler->getItemNum()."<br>";
echo 
"修改后总价:".$CartHandler->getTotalCost()."<br>";

$CartHandler->delItem(1);

echo 
"删除后总数:".$CartHandler->getItemNum()."<br>";
echo 
"删除后总价:".$CartHandler->getTotalCost()."<br>";
?>
2005-6-25 07:30 PM#20
查看资料  Blog  发短消息  QQ  顶部
 23  2/3  <  1  2  3  > 
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.075635 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP