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 相关文章推荐
PHP脚本数据库功能详解(中)
Oct 09 PHP
用PHP实现多级树型菜单
Oct 09 PHP
php5.2.0内存管理改进
Jan 22 PHP
PHP define函数的使用说明
Aug 27 PHP
php 将excel导入mysql
Nov 09 PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 PHP
destoon实现调用自增数字从1开始的方法
Aug 21 PHP
ThinkPHP在新浪SAE平台的部署实例
Oct 31 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
Jul 29 PHP
使用Yii2实现主从数据库设置
Nov 20 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 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
javascript 有用的脚本函数
2009/05/07 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
子页向父页传值示例
2013/11/27 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
跟我学习javascript的arguments对象
2015/11/16 Javascript
JavaScript中将数组进行合并的基本方法讲解
2016/03/07 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
jQuery通过ajax快速批量提交表单数据
2016/10/25 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
2017/05/02 Javascript
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
详解Python sys.argv使用方法
2019/05/10 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
通过实例解析Python return运行原理
2020/03/04 Python
深入理解Python 多线程
2020/06/16 Python
Python 操作 MySQL数据库
2020/09/18 Python
python Selenium 库的使用技巧
2020/10/16 Python
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
罗马尼亚购物网站:Vivantis.ro
2019/07/20 全球购物
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
毕业自荐信
2013/12/16 职场文书
业务主管岗位职责范本
2013/12/25 职场文书
军训感想500字
2014/02/20 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
2014年社区重阳节活动策划方案
2014/09/16 职场文书
教师节倡议书2015
2015/04/27 职场文书
导游词之凤凰古城
2019/10/22 职场文书
高一作文之暖冬
2019/11/09 职场文书
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL