php购物车实现代码


Posted in PHP onOctober 10, 2011

ShopCar.php

<?php 
class Shopcar 
{ 
//商品列表 
public $productList=array(); 
/** 
* 
* @param unknown_type $product 传进来的商品 
* @return true 购物车里面没有该商品 
*/ 
public function checkProduct($product) 
{ 
for($i=0;$i<count($this->productList);$i++ ) 
{ 
if($this->productList[$i]['name']==$product['name']) 
return $i; 
} 
return -1; 
} 
//添加到购物车 
public function add($product) 
{ 
$i=$this->checkProduct($product); 
if($i==-1) 
array_push($this->productList,$product); 
else 
$this->productList[$i]['num']+=$product['num']; 
} 
//删除 
public function delete($product) 
{ 
$i=$this->checkProduct($product); 
if($i!=-1) 
array_splice($this->productList,$i,1); 
} 
//返回所有的商品的信息 
public function show() 
{ 
return $this->productList; 
} 
}

productList.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insert title here</title> 
<script type="text/javascript" src='jquery.min.js'></script> 
<script type="text/javascript"> 
function buy(i) 
{ 
var num=$(':input[name=num]')[i].value; 
var name=$('[name=name]')[i].innerHTML; 
var price=$('[name=price]')[i].innerHTML; 
alert(num+name+price); 
$.ajax({ 
type:'post', //传送的方式,get/post 
url:'index.php', //发送数据的地址 
cache:'false', 
data:'num='+num+"&name="+name+"&price="+price, 
success:function(data) 
{ 
alert(data); 
} 
}) 
} 
</script> 
</head> 
<body> 
<table> 
<tr><td>商品编号</td><td>商品名称</td><td>价格</td><td>数量</td><td>购买</td></tr> 
<tr><td>0</td><td><label name='name' >商品1</label></td><td><label name='price'>1</label> 
</td><td><input name='num' type='text' value='1' /></td><td><a onclick='buy(0)'><u><font color='blue'>购买</font></u></a></td></tr> 
<tr><td>1</td><td><label name='name' >商品2</label></td><td><label name='price'>2</label> 
</td><td><input name='num' type='text' value='1' /></td><td><a onclick='buy(1)'>购买</a></td></tr> 
<tr><td>2</td><td><label name='name' >商品3</label></td><td><label name='price'>1</label> 
</td><td><input name='num' type='text' value='1' /></td><td><a onclick='buy(2)'>购买</a></td></tr> 
<tr><td>3</td><td><label name='name' >商品4</label></td><td><label name='price'>1</label> 
</td><td><input name='num' type='text' value='1' /></td><td><a onclick='buy(3)'>购买</a></td></tr> 
<tr><a href='show.php'>查看购物车</a></tr> 
</table> 
</body> 
</html>

index.php
<?php 
require 'Shopcar.class.php'; 
session_start(); 
$name=$_POST['name']; 
$num=$_POST['num']; 
$price=$_POST['price']; 
$product=array('name'=>$name,'num'=>$num,'price'=>$price); 
print_r($product); 
if(isset($_SESSION['shopcar'])) 
$shopcar=unserialize($_SESSION['shopcar']); 
else 
$shopcar=new Shopcar(); 
$shopcar->add($product); 
$_SESSION['shopcar']=serialize($shopcar);

show.php
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title></title> 
</head> 
<body> 
<table> 
<tr><td>商品编号</td><td>商品名称</td><td>价格</td><td>数量</td></tr> 
<?php 
require 'Shopcar.class.php'; 
session_start(); 
$shopcar=unserialize($_SESSION['shopcar']); 
print_r($shopcar); 
$productList=$shopcar->productList; 
foreach ($productList as $product){ 
?> 
<tr><td>1</td><td><label ><?php echo $product['name']?></label></td><td><label name='price'><?php echo $product['price']?></label> 
</td><td><input name='num' type='text' value='<?php echo $product['num']?>' /></td></tr> 
<?php }?> 
</table> 
</body> 
</html>

PHP 相关文章推荐
WINXP下apache+php4+mysql
Nov 25 PHP
JS 网站性能优化笔记
May 24 PHP
PHP面向对象法则
Feb 23 PHP
php中读写文件与读写数据库的效率比较分享
Oct 19 PHP
php中url函数介绍及使用示例
Feb 13 PHP
用php守护另一个php进程的例子
Feb 13 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
Feb 14 PHP
PHP图像处理类库及演示分享
May 17 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 PHP
PHP simplexml_load_file()函数讲解
Feb 03 PHP
php pdo连接数据库操作示例
Nov 18 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 PHP
使用PHP实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
Oct 09 #PHP
PHP实现时间轴函数代码
Oct 08 #PHP
PHP+Mysql+jQuery实现动态展示信息
Oct 08 #PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
Oct 08 #PHP
php实现用户在线时间统计详解
Oct 08 #PHP
php 文件缓存函数
Oct 08 #PHP
php数字转汉字代码(算法)
Oct 08 #PHP
You might like
德生H-501的评价与改造
2021/03/02 无线电
PHP读取word文档的方法分析【基于COM组件】
2017/08/01 PHP
枚举JavaScript对象的函数
2006/12/22 Javascript
jQuery contains过滤器实现精确匹配使用方法
2013/04/12 Javascript
jquery特效 幻灯片效果示例代码
2013/07/16 Javascript
jquery live()调用不存在的解决方法
2014/02/26 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
灵活的理解JavaScript中的this指向
2016/02/25 Javascript
javascript中的深复制详解及实例分析
2016/12/29 Javascript
jQuery居中元素scrollleft计算方法示例
2017/01/16 Javascript
javascript循环链表之约瑟夫环的实现方法
2017/01/16 Javascript
原生js实现轮播图
2017/02/27 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
jQuery超简单遮罩层实现方法示例
2018/09/06 jQuery
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
python函数的作用域及关键字详解
2019/08/20 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
2020/01/04 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
委托证明的格式
2014/01/10 职场文书
刘胡兰的英雄事迹材料
2014/02/11 职场文书
春季运动会开幕词
2015/01/28 职场文书
红旗渠导游词
2015/02/09 职场文书
烛光里的微笑观后感
2015/06/17 职场文书
2016年社区“6.26”禁毒日宣传活动总结
2016/04/05 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB
ipad隐藏软件app图标方法
2022/04/19 数码科技
解决Git推送错误non-fast-forward的方法
2022/06/25 Servers