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 相关文章推荐
VML绘图板②脚本--VMLgraph.js、XMLtool.js
Oct 09 PHP
PHP4中实现动态代理
Oct 09 PHP
如何在WIN2K下安装PHP4.04
Oct 09 PHP
php 获取本机外网/公网IP的代码
May 09 PHP
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
Apr 07 PHP
PHP中数字检测is_numeric与ctype_digit的区别介绍
Oct 04 PHP
php中ob_get_length缓冲与获取缓冲长度实例
Nov 20 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
Feb 03 PHP
Laravel 5 框架入门(三)
Apr 09 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
Feb 23 PHP
php微信公众号开发之答题连闯三关
Oct 20 PHP
PHP数组对象与Json转换操作实例分析
Oct 22 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 反向排序和随机排序代码
2010/06/30 PHP
PHP通过插入mysql数据来实现多机互锁实例
2014/11/05 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
node.js中的path.normalize方法使用说明
2014/12/08 Javascript
JavaScript实现点击按钮切换网页背景色的方法
2015/10/17 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
jQuery插件扩展extend的简单实现原理
2016/06/24 Javascript
jQuery Dialog 取消右上角删除按钮事件
2016/09/07 Javascript
JavaScript实现简单评论功能
2017/08/17 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
vue实现简单的MVVM框架
2018/08/05 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
vue-cli3+ts+webpack实现多入口多出口功能
2019/05/30 Javascript
[03:26]《DAC最前线》之EG经理自述DOTA2经历
2015/02/02 DOTA
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
Python实现的栈、队列、文件目录遍历操作示例
2019/05/06 Python
python实现五子棋程序
2020/04/24 Python
PyQt5的QWebEngineView使用示例
2020/10/20 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
css3实现圆锥渐变conic-gradient效果
2020/02/12 HTML / CSS
精选干货:Java精选笔试题附答案
2014/01/18 面试题
卫校护理专业毕业生求职信
2013/11/26 职场文书
4s店总经理岗位职责
2013/12/31 职场文书
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
党员个人对照检查材料
2014/10/01 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
2014年服务员个人工作总结
2014/12/23 职场文书
语文教师求职信范文
2015/03/20 职场文书
安全知识竞赛主持词
2015/06/30 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
Java 在生活中的 10 大应用
2021/11/02 Java/Android