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 Try Catch异常测试
Mar 01 PHP
PHP 数组遍历顺序理解
Sep 09 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
May 14 PHP
php学习之运算符相关概念
Jun 09 PHP
PHP中获取变量的变量名的一段代码的bug分析
Jul 07 PHP
PHP return语句的另一个作用
Jul 30 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
Oct 26 PHP
PHP调用.NET的WebService 简单实例
Mar 27 PHP
php代码架构的八点注意事项
Jan 25 PHP
PHP数组相加操作及与array_merge的区别浅析
Nov 26 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
Feb 10 PHP
Thinkphp5框架异常处理操作实例分析
Jun 03 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 eval函数一句话木马代码
2015/05/21 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
JavaScript内核之基本概念
2011/10/21 Javascript
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
2013/06/04 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
jquery SweetAlert插件实现响应式提示框
2015/08/18 Javascript
JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)
2015/12/03 Javascript
js创建数组的简单方法
2016/07/27 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
2017/09/29 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
React Native中NavigatorIOS组件的简单使用详解
2018/01/27 Javascript
React实现全局组件的Toast轻提示效果
2018/09/21 Javascript
JS集合set类的实现与使用方法示例
2019/02/01 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
js实现跳一跳小游戏
2020/07/31 Javascript
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
Python程序中设置HTTP代理
2016/11/06 Python
详解用python实现简单的遗传算法
2018/01/02 Python
Python实现将数据框数据写入mongodb及mysql数据库的方法
2018/04/02 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
Python调用JavaScript代码的方法
2020/10/27 Python
css3的transition属性详解
2014/12/15 HTML / CSS
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
爱尔兰橄榄球店:Irish Rugby Store
2019/12/05 全球购物
建筑工程技术应届生自荐信
2013/09/27 职场文书
法学研究生自我鉴定范文
2013/12/04 职场文书
购房意向书
2014/04/01 职场文书
火灾现场处置方案
2014/05/28 职场文书
刑事和解协议书范本
2014/11/19 职场文书
武夷山导游词
2015/02/03 职场文书
退休教师追悼词
2015/06/23 职场文书