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 相关文章推荐
模仿OSO的论坛(二)
Oct 09 PHP
配置支持SSI
Nov 25 PHP
用PHP的ob_start();控制您的浏览器cache!
Feb 14 PHP
php 从数据库提取二进制图片的处理代码
Sep 09 PHP
PHP编码规范之注释和文件结构说明
Jul 09 PHP
win7下memCache的安装过程(具体操作步骤)
Jun 28 PHP
php定义参数数量可变的函数用法实例
Mar 16 PHP
DEDECMS首页调用图片集里的多张图片
Jun 05 PHP
php批量删除超链接的实现方法
Oct 19 PHP
PHP单例模式是什么 php实现单例模式的方法
May 14 PHP
php打乱数组二维数组多维数组的简单实例
Jun 17 PHP
php微信公众号开发之微信企业付款给个人
Oct 04 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中文件下载功能实现超详细流程分析
2012/06/13 PHP
php使用curl出现Expect:100-continue解决方法
2015/03/03 PHP
php 输出json及显示json中的中文汉字详解及实例
2016/11/09 PHP
PHP封装XML和JSON格式数据接口操作示例
2019/03/06 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
javascript 禁止复制网页
2009/06/11 Javascript
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
Javascript拓展String方法小结
2013/07/08 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
js改变embed标签src值的方法
2015/04/10 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
jquery插件ajaxupload实现文件上传操作
2015/12/09 Javascript
详谈jQuery.load()和Jsp的include的区别
2017/04/12 jQuery
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
Webpack devServer中的 proxy 实现跨域的解决
2018/06/15 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
node.js通过Sequelize 连接MySQL的方法
2020/12/28 Javascript
Python之os操作方法(详解)
2017/06/15 Python
python 根据时间来生成唯一的字符串方法
2019/01/14 Python
Python实现判断一个整数是否为回文数算法示例
2019/03/02 Python
python实现日志按天分割
2019/07/22 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
python pymysql库的常用操作
2020/10/16 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
财会自我鉴定范文
2013/12/27 职场文书
会计辞职信范文
2014/01/15 职场文书
护士辞职信模板
2014/01/20 职场文书
学子宴答谢词
2014/01/25 职场文书
会计专业大学生求职信范文
2014/01/28 职场文书
学校运动会霸气口号
2014/06/07 职场文书
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis