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 相关文章推荐
推荐一篇入门级的Class文章
Mar 19 PHP
php入门小知识
Mar 24 PHP
基于php无限分类的深入理解
Jun 02 PHP
基于PHP异步执行的常用方式详解
Jun 03 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
Jul 01 PHP
CodeIgniter配置之SESSION用法实例分析
Jan 19 PHP
php面向对象编程self和static的区别
May 08 PHP
thinkPHP批量删除的实现方法分析
Nov 09 PHP
详解Yii2 之 生成 URL 的方法
Jun 16 PHP
Bootstrap+PHP实现多图上传功能实例详解
Apr 08 PHP
PHP数据源架构模式之表入口模式实例分析
Jan 23 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
May 27 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
PHP 日,周,月点击排行统计
2012/01/11 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
php生成微信红包数组的方法
2019/09/05 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
2019/11/13 PHP
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
jQuery Selector选择器小结
2010/05/06 Javascript
js 上下左右键控制焦点(示例代码)
2013/12/14 Javascript
javascript实现des解密加密全过程
2014/04/03 Javascript
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
鼠标移到图片上变大显示而不是放大镜效果
2014/06/15 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
javascript实现数组中的内容随机输出
2015/08/11 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
2015/10/28 Javascript
使用JavaScript获取Request中参数的值方法
2016/09/27 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
使用bootstrap插件实现模态框效果
2017/05/10 Javascript
详解vue过滤器在v2.0版本用法
2017/06/01 Javascript
Vuex 入门教程
2018/01/10 Javascript
详解使用Python处理文件目录的相关方法
2015/10/16 Python
python itchat实现微信自动回复的示例代码
2017/08/14 Python
Python随机函数random()使用方法小结
2018/04/29 Python
执行Python程序时模块报错问题
2020/03/26 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
django实现日志按日期分割
2020/05/21 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
Flask-SocketIO服务端安装及使用代码示例
2020/11/26 Python
浅析HTML5 Landmark
2020/09/11 HTML / CSS
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
《月亮湾》教学反思
2014/04/14 职场文书
计算机毕业生求职信
2014/06/10 职场文书
大学生就业求职信
2014/06/12 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
秋季运动会开幕词
2015/01/28 职场文书
Python 如何利用ffmpeg 处理视频素材
2021/11/27 Python