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 Cookie的使用教程详解
Jun 03 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
Jun 20 PHP
解析PHP的session过期设置
Jun 29 PHP
PHP Curl多线程原理实例详解
Nov 06 PHP
php生成html文件方法总结
Dec 01 PHP
使用PHP similar text计算两个字符串相似度
Nov 06 PHP
PHP实现QQ空间自动回复说说的方法
Dec 02 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 PHP
Yii2使用swiftmailer发送邮件的方法
May 03 PHP
Laravel框架用户登陆身份验证实现方法详解
Sep 14 PHP
PHP的mysqli_ssl_set()函数讲解
Jan 23 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
Oct 21 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
模拟OICQ的实现思路和核心程序(二)
2006/10/09 PHP
别人整理的服务器变量:$_SERVER
2006/10/20 PHP
php解析url的三个示例
2014/01/20 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
PHP生成各种常见验证码和Ajax验证过程
2016/01/10 PHP
PHP中危险的file_put_contents函数详解
2017/11/04 PHP
解决tp5在nginx下修改配置访问的问题
2019/10/16 PHP
动态改变textbox的宽高的js
2006/10/26 Javascript
你必须知道的Javascript知识点之&quot;字面量和对应类型&quot;说明介绍
2013/04/23 Javascript
微信小程序 刷新上拉下拉不会断详细介绍
2017/05/11 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
详解vue2 $watch要注意的问题
2017/09/08 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
es6 filter() 数组过滤方法总结
2019/04/03 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
[46:12]完美世界DOTA2联赛循环赛 DM vs Matador BO2第一场 11.04
2020/11/04 DOTA
Python学生信息管理系统修改版
2018/03/13 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
Python的条件锁与事件共享详解
2019/09/12 Python
python多进程重复加载的解决方式
2019/12/13 Python
全面解析CSS Media媒体查询使用操作(推荐)
2017/08/15 HTML / CSS
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
html5适合移动应用开发的12大特性
2014/03/19 HTML / CSS
护理专业本科生自荐信
2013/10/01 职场文书
学期自我鉴定
2013/11/04 职场文书
皮肤科医师岗位职责
2013/12/04 职场文书
工作中个人的自我评价
2013/12/31 职场文书
实习生的自我评价
2014/01/08 职场文书
安全生产责任书
2014/03/12 职场文书
小学毕业寄语大全
2014/04/03 职场文书
党员承诺书怎么写
2014/05/20 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
协议书范文
2015/01/27 职场文书