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公用函数列表[正则]
Feb 22 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
May 19 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
Jun 21 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
Jul 02 PHP
分享下php5类中三种数据类型的区别
Jan 26 PHP
php socket通信(tcp/udp)实例分析
Feb 14 PHP
php操纵mysqli数据库的实现方法
Sep 18 PHP
PHP对象链式操作实现原理分析
Oct 09 PHP
php计算多个集合的笛卡尔积实例详解
Feb 16 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
Mar 30 PHP
PHP与Web页面的交互示例详解二
Aug 04 PHP
php去除数组中为0的元素的实例分析
Nov 17 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面向对象编程快速入门
2006/12/14 PHP
PHP Undefined index报错的修复方法
2011/07/17 PHP
完美解决PHP中的Cannot modify header information 问题
2013/08/12 PHP
php统计文章排行示例
2014/03/04 PHP
php常用图片处理类
2016/03/16 PHP
php提供实现反射的方法和实例代码
2019/09/17 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
jquery 图片轮换效果
2010/07/29 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
jQuery取得select选择的文本与值的示例
2013/12/09 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
jQuery中last()方法用法实例
2015/01/06 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
2015/08/10 Javascript
九种原生js动画效果
2015/11/11 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
2016/05/20 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
vue滚动插件better-scroll使用详解
2019/10/18 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
Python列表推导式的使用方法
2013/11/21 Python
Python基于select实现的socket服务器
2016/04/13 Python
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
对Python中的@classmethod用法详解
2018/04/21 Python
python+ffmpeg批量去视频开头的方法
2019/01/09 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
css3实现针线缝合效果(图解步骤)
2013/02/04 HTML / CSS
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
高级运动鞋:GREATS
2019/07/19 全球购物
杠杆的科学教学反思
2014/01/10 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL