示例PHP购物车类Cart.class.php定义与用法
导读:收集整理的这篇文章主要介绍了示例PHP购物车类Cart.class.php定义与用法,觉得挺不错的,现在分享给大家,也给大家做个参考。本文实例讲述了PHP购物车类Cart.class.php定义与用法。分享给大家供大家参考,具体如下:之前的...
收集整理的这篇文章主要介绍了示例PHP购物车类Cart.class.php定义与用法,觉得挺不错的,现在分享给大家,也给大家做个参考。本文实例讲述了PHP购物车类Cart.class.php定义与用法。分享给大家供大家参考,具体如下:
之前的开发人员使用了JS的技术开发了一套前台购物车(删除添加什么的都使用JS),但是浏览器兼容不好, 今天终于出问题了, 有个老外购物了产品, 由于使用了不知名的浏览器, chrome, opera…都有可能, 因此, 我多了一份工作, 重写购物车.
不打算再使用JS, 直接考虑php.
找到了一个购物车的类, 使用起来很方便.
相关学习推荐:PHP编程从入门到精通
Cart.class.php源码:
?php/** * Cart * * 购物车类 * * @author doodoopwtITle @yahoo.COM.cn="">
* @package Cart * @category Cart * @license PHP License * @access public * @version $revision: 1.10 $ */Class Cart{
VAR $cart;
var $totalCount;
//商品总数量 var $totalPRices;
//商品总金额 /** * Cart Constructor * * 类的构造函数,使购物车保持稳定的初始化状态 * * @static * @access public * @return void 无返回值 * @param void 无参数 */ function Cart(){
$this->
totalCount = 0;
$this->
totalPrice = 0;
$this->
cart = array();
}
// }
}
}
// {
{
{
add($item) /** * 增加商品到当前购物车 * * @access public * @param array $item 商品信息(一维数组:array(商品ID,商品名称,商品单价,商品数量)) * @return array 返回当前购物车内商品的数组 */ function add($item){
if(!is_array($item)||is_null($item)) return $this->
cart;
if(!is_numeric(end($item))||(!is_numeric(prev($item)))) {
echo "价格和数量必须是数字";
return $this->
cart;
}
reset($item);
//这一句是必须的,因为上面的判断已经移动了数组的指标 $key = current($item);
if($key=="") return $this->
cart;
if($this->
_isExists($key)){
//商品是否已经存在? $this->
cart[$key]['count'] = end($item);
return $this->
cart;
}
$this->
cart[$key]['ID'] = $key;
$this->
cart[$key]['name'] = next($item);
$this->
cart[$key]['price'] = next($item);
$this->
cart[$key]['count'] = next($item);
return $this->
cart;
}
// }
}
}
// {
{
{
add($item) /** * 从当前购物车中取出部分或全部商品 * 当 $key=="" 的时候,清空当前购物车 * 当 $key!=""&
&
$count=="" 的时候,从当前购物车中拣出商品ID号为 $key 的全部商品 * 当 $key!=""&
&
$count!="" 的时候,从当前购物车中拣出 $count个 商品ID号为 $key 的商品 * * @access public * @param string $key 商品ID * @return mixed 返回真假或当前购物车内商品的数组 */ function remove($key="",$count=""){
if($key=="") {
$this->
cart = array();
return true;
}
if(!array_key_exists($key,$this->
cart)) return false;
if($count==""){
//移去这一类商品 unset($this->
cart[$key]);
}
else{
//移去$count个商品 $this->
cart[$key]['count'] -= $count;
if($this->
cart[$key]['count']=0) unset($this->
cart[$key]);
}
return $this->
cart;
}
// }
}
}
// {
{
{
modi($key,$value) /** * 修改购物车内商品ID为 $key 的商品的数量为 $value * * @access public * @param string $key 商品ID * @param int $value 商品数量 * @return array 返回当前购物车内商品的数组;
*/ function modi($key,$value){
if(!$this->
_isExists($key)) return $this->
cart();
//不存在此商品,直接返回 if($value=0){
// value 太小,全部删除 unset($this->
cart[$key]);
return $this->
cart;
}
$this->
cart[$key]['count'] = $value;
return $this->
cart;
}
/** * 返回当前购物车内商品的数组 * * @access public * @return array 返回当前购物车内商品的数组;
*/ function getCart(){
return $this->
cart;
}
// }
}
}
// {
{
{
_isExists($key) /** * 判断当前购物车中是否存在商品ID号为$key的商品 * * @access private * @param string $key 商品ID * @return bool true or false;
*/ function _isExists($key) {
if(isset($this->
cart[$key])&
&
!empty($this->
cart[$key])&
&
array_key_exists($key,$this->
cart)) return true;
return false;
}
// }
}
}
// {
{
{
iSEMpty() /** * 判断当前购物车是否为空,即没有任何商品 * * @access public * @return bool true or false;
*/ function isEmpty(){
return !count($this->
cart);
}
// }
}
}
// {
{
{
_stat() /** * 取得部分统计信息 * * @access private * @return bool true or false;
*/ function _stat(){
if($this->
isEmpty()) return false;
foreach($this->
cart as $item){
$this->
totalCount = @end($item);
$this->
totalPrices = @prev($item);
}
return true;
}
// }
}
}
// {
{
{
totalPrices() /** * 取得当前购物车所有商品的总金额 * * @access public * @return float 返回金额;
*/ function totalPrices(){
if($this->
_stat()) return $this->
totalPrices;
return 0;
}
// }
}
}
// {
{
{
isEmpty() /** * 取得当前购物车所有商品的总数量和 * * @access public * @return int ;
*/ function totalCount(){
if($this->
_stat()) return $this->
totalCount;
return 0;
}
}
//End Class Cart?>
使用该类的方法:
?phpheader("Content-tyPE:text/htML;
charset=utf8");
//调用实例require_once 'Cart.class.php';
session_start();
if(!isset($_SESSION['cart'])) {
$_SESSION['cart'] = new Cart;
}
$cart =&
$_SESSION['cart'];
if( ($_SERVER['REQUEST_METHOD']=="POST")&
&
($_POST['action']=='add') ){
$p = $_POST['p'];
$items = $cart->
add($p);
}
if( ($_GET['action']=='remove')&
&
($_GET['key']!="") ) {
$items = $cart->
remove($_GET['key']);
}
if( ($_SERVER['REQUEST_METHOD']=="POST")&
&
($_POST['action']=='modi') ){
$key = $_POST['key'];
$value = $_POST['value'];
for($i=0;
$icount ($key);
$i="" $items="$cart-" ){
="">
modi($key[$i],$value[$i]);
}
}
$items = $cart->
getCart();
//打印echo "";
setlocale(LC_MONETARY, 'it_IT');
foreach($items as $item){
echo "";
echo "table border="1">
tbody>
tr>
form action="\&
quot;
index.php\&
quot;
" method="\" post\??="">
/form>
td>
ID:".$item['ID']."input type="hidden" value=".$item['ID']." name="key[]">
";
echo "/td>
td>
产品:".$item['name'];
echo "/td>
td>
单价:".$item['price'];
echo "/td>
td>
input value=".$item['count']." name="value[]">
";
$sum = $item['count']*$item['price'];
echo "/td>
td>
合计:".round($sum,2);
echo "/td>
td>
input onclick="\&
quot;
location='?action=remove&
key=&
quot;
.$item['ID'].&
quot;
'\&
quot;
" type="button" value="删除">
";
}
echo "input type="hidden" value="modi" name="action">
";
echo "/td>
/tr>
tr>
td colspan="7">
input type="submit" value="提交查询内容">
";
echo "/td>
/tr>
/tbody>
/table>
";
?>
hr>
form action="tmp.php" method="post">
ID:input name="p[]">
品名:input name="p[]">
单价:input name="p[]">
数量:input name="p[]">
input type="hidden" value="add" name="action">
input type="submit" value="提交查询内容">
/form>
/count>
以上就是示例PHP购物车类Cart.class.php定义与用法的详细内容,更多请关注其它相关文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 示例PHP购物车类Cart.class.php定义与用法
本文地址: https://pptw.com/jishu/596583.html
