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 相关文章推荐
用来解析.htpasswd文件的PHP类
Sep 05 PHP
php引用计数器进行垃圾收集机制介绍
Sep 19 PHP
基于PHP异步执行的常用方式详解
Jun 03 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
Jun 19 PHP
PHP输出两个数字中间有多少个回文数的方法
Mar 23 PHP
windows8.1下Apache+Php+MySQL配置步骤
Oct 30 PHP
php微信公众号开发(3)php实现简单微信文本通讯
Dec 15 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
Aug 03 PHP
PHP类的自动加载机制实现方法分析
Jan 10 PHP
php简单检测404页面的方法示例
Aug 23 PHP
laravel http 自定义公共验证和响应的方法
Sep 29 PHP
php 多继承的几种常见实现方法示例
Nov 18 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
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
ThinkPHP采用实现三级循环代码实例
2014/07/18 PHP
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
浅析AngularJS中的指令
2016/03/20 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
2019/04/26 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
Django入门使用示例
2017/12/12 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
python global和nonlocal用法解析
2020/02/03 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
涉外文秘个人求职的自我评价
2013/10/07 职场文书
事业单位绩效考核实施方案
2014/03/27 职场文书
活动倡议书范文
2014/05/13 职场文书
学生干部培训方案
2014/06/12 职场文书
班级活动总结格式
2014/08/30 职场文书
创卫工作总结2015
2015/04/22 职场文书
功夫熊猫观后感
2015/06/10 职场文书
2015年财务人员个人工作总结
2015/07/27 职场文书
MySQL不使用order by实现排名的三种思路总结
2021/06/02 MySQL
python 中的jieba分词库
2021/11/23 Python