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 a simple smtp class
Nov 26 PHP
php实现jQuery扩展函数
Oct 30 PHP
CI框架自动加载session出现报错的解决办法
Jun 17 PHP
php使用cookie实现记住登录状态
Apr 27 PHP
php强制用户转向www域名的方法
Jun 19 PHP
php获取、检查类名、函数名、方法名的函数方法
Jun 25 PHP
从性能方面考虑PHP下载远程文件的3种方法
Dec 29 PHP
PHP中SQL查询语句的id=%d解释(推荐)
Dec 10 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
Jul 31 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
Feb 15 PHP
PHP PDO数据库操作预处理与注意事项
Mar 16 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
Dec 13 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边学边教》(01.开篇――准备工作)
2006/12/13 PHP
PHP中$_SERVER的详细参数与说明
2008/07/29 PHP
php判断页面是否是微信打开的示例(微信打开网页)
2014/04/25 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
JS 树形递归实例代码
2010/05/18 Javascript
编写Js代码要注意的几条规则
2010/09/10 Javascript
javascript 兼容各个浏览器的事件
2015/02/04 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
2015/04/07 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
nodejs获取微信小程序带参数二维码实现代码
2017/04/12 NodeJs
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
vue.js全局API之nextTick全面解析
2017/07/07 Javascript
JS验证码实现代码
2017/09/14 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
JavaScript canvas实现跟随鼠标事件
2020/02/10 Javascript
js实现选项卡效果
2020/03/07 Javascript
python爬取网页内容转换为PDF文件
2020/07/28 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
python实现画出e指数函数的图像
2019/11/21 Python
如何查看Django ORM执行的SQL语句的实现
2020/04/20 Python
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
美国孩之宝玩具官网:Hasbro Pulse
2019/06/24 全球购物
通用C#笔试题附答案
2016/11/26 面试题
自主招生自荐信范文
2013/12/04 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
机关党员进社区活动总结
2014/07/05 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
暂住证证明
2015/06/19 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书
python 单机五子棋对战游戏
2022/04/28 Python