PHP购物车模块的实现(php/ajax/session)
购物车网页代码
1.登录界面login.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="../jquery-1.11.2.min.js"></script>
<title>无标题文档</title>
</head> <body>
<div>用户名:<input type="text" id="uid" /></div>
<div>密码:<input type="text" id="pwd" /></div>
<input type="button" value="登录" id="btn" />
</body>
<script type="text/javascript">
$("#btn").click(function(){
var uid = $("#uid").val();
var pwd = $("#pwd").val();
$.ajax({
url:"loginchuli.php",
data:{u:uid,p:pwd},
type:"POST",
dataType:"TEXT",
success: function(data){
if(data.trim()=="OK")
{
window.location.href="main.php";
}
else
{
alert("用户名或密码错误");
}
}
})
})
</script>
</html>
2.登录处理页面loginchuli.php
<?php
session_start(); include("../DBDA.class.php");
$db = new DBDA();
$uid = $_POST["u"];
$pwd = $_POST["p"];
$sql = "select password from login where username='{$uid}'";
$mm = $db->StrQuery($sql);
if($mm==$pwd && $pwd!="")
{
$UserName = $_POST["uid"];
$_SESSION["uid"]=$uid;
echo "OK";
}
else
{
echo "NO";
}
3.主页面main.php
<?php
session_start();
include("../DBDA.class.php");
$db = new DBDA();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title><br />
<style type="text/css">
.list{ width:100%; height:30px; margin-top:10px; text-align:center; line-height:30px; vertical-align:middle}
</style>
</head>
<body>
<div style="width:100%; height:100px; background-color:#6CC">
<h1 style="float:left">大苹果商城</h1>
<a style="float:right; margin-top:40px" href="zhuxiao.php">注销</a>
</div>
<br />
<div style="width:100%; height:600px">
<div id="left" style="width:20%; float:left">
<a href="main.php"><div class="list">浏览商品</div></a>
<a href="zhanghu.php"><div class="list">查看账户</div></a>
<a href="gouwuche.php"><div class="list">查看购物车</div></a>
</div> <div id="right" style="width:80%; float:left">
<?php
$agwc = array();
if(!empty($_SESSION["gwc"]))
{
$agwc = $_SESSION["gwc"];
}
$zhonglei = count($agwc);
$sum = 0;
foreach($agwc as $v)
{
$sql = "select price from fruit where ids='{$v[0]}'";
$danjia = $db->StrQuery($sql);
$sum = $sum +$danjia*$v[1];
}
echo "<div>购物车中有:{$zhonglei}种商品,总价格为:{$sum}元.</div>";
?>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>代号</td>
<td>水果名称</td>
<td>水果价格</td>
<td>源产地</td>
<td>库存量</td>
<td>操作</td>
</tr>
<?php
$sql = "select * from fruit";
$attr = $db->Query($sql); foreach($attr as $v)
{
echo "<tr><td>{$v[0]}</td>
<td>{$v[1]}</td>
<td>{$v[2]}</td>
<td>{$v[3]}</td>
<td>{$v[4]}</td>
<td><a href='goumai.php?code={$v[0]}'>购买</a></td></tr>";
}
?>
</table>
</div>
</div> </body>
</html>
4.购买处理页面goumai.php
<?php
session_start();
$code = $_GET["code"]; if(empty($_SESSION["gwc"]))
{
//第一次点击购买
$attr = array(
array($code,1)
);
$_SESSION["gwc"] = $attr;
}
else
{
//不是第一次点击购买
$attr = $_SESSION["gwc"];
$bs=0;
foreach($attr as $k=>$v)
{
if($v[0]==$code)
{
$bs=1;
$attr[$k][1] = $attr[$k][1]+1;
}
}
//如果没有在数组里面出现
if($bs==0)
{
$shuzu = array($code,1);
$attr[] = $shuzu;
} $_SESSION["gwc"]=$attr; }
header("location:main.php");
5.订单处理页面,计算选取水果的总价,和水果剩余量。dingdan.php
<?php
session_start();
include("../DBDA.class.php");
$db = new DBDA();
$uid = $_SESSION["uid"];
$attr = array();
if(!empty($_SESSION["gwc"]))
{
$attr = $_SESSION["gwc"];
}
//看下两个条件是否都满足
$bs = true; //判断余额是否满足
//根据用户名找余额
$syue = "select account from login where username='{$uid}'";
$yue = $db->StrQuery($syue); //根据购物车数组取总金额
$sum = 0;
foreach($attr as $v)
{
$sql = "select price from fruit where ids='{$v[0]}'";
$danjia = $db->StrQuery($sql);
$sum = $sum +$danjia*$v[1];
}
if($yue<$sum)
{
$bs = false;
echo "YEBUZU";
exit;
} //判断库存是否满足 foreach($attr as $v)
{
$skucun = "select name,numbers from fruit where ids='{$v[0]}'";
$akucun = $db->Query($skucun);
if($akucun[0][1]<$v[1])
{
$bs = false;
echo "{$akucun[0][0]}库存不足!";
exit; }
} //添加订单,减库存,减余额 if($bs)
{
//减库存
foreach($attr as $v)
{
$sql = "update fruit set numbers = numbers-{$v[1]} where ids='{$v[0]}'";
$db->Query($sql,0);
} //减余额
$jianyue="update login set account=account-{$sum} where username='{$uid}'";
$db->Query($jianyue,0); //添加订单
$dingdanhao = $uid+date("YmdHis");
$t = time(); $sorder = "insert into orders values('{$dingdanhao}','{$uid}','{$t}')";
$db->Query($sorder,0); foreach($attr as $v)
{
$sxq = "insert into orderdetails values('','{$dingdanhao}','{$v[0]}','{$v[1]}')";
$db->Query($sxq,0);
}
} echo "OK";
6.购物车页面
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title><br />
<style type="text/css">
.list{ width:100%; height:30px; margin-top:10px; text-align:center; line-height:30px; vertical-align:middle}
</style>
<script src="../../jquery-1.11.2.min.js"></script>
</head> <body> <div style="width:100%; height:100px; background-color:#6CC">
<h1 style="float:left">大苹果商城</h1>
<a style="float:right; margin-top:40px" href="zhuxiao.php">注销</a>
</div>
<br />
<div style="width:100%; height:600px">
<div id="left" style="width:20%; float:left">
<a href="main.php"><div class="list">浏览商品</div></a>
<a href="zhanghu.php"><div class="list">查看账户</div></a>
<a href="gouwuche.php"><div class="list">查看购物车</div></a>
</div> <div id="right" style="width:80%; float:left">
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>商品名称</td>
<td>商品单价</td>
<td>购买数量</td>
<td>操作</td>
</tr>
<?php
include("../DBDA.class.php");
$db = new DBDA();
$attr=array();
if(!empty($_SESSION["gwc"]))
{
$attr = $_SESSION["gwc"];
} foreach($attr as $k=>$v)
{
$sql = "select name,price from fruit where ids='{$v[0]}'";
$ashuiguo = $db->Query($sql); echo "<tr><td>{$ashuiguo[0][0]}</td><td>{$ashuiguo[0][1]}</td><td>{$v[1]}</td><td><a href='shanchu.php?sy={$k}'>删除</a></td></tr>"; } ?>
</table>
<div id="tj">提交订单</div><div id="ts"></div>
</div>
</div> <script type="text/javascript">
$("#tj").click(function(){
$.ajax({
url:"dingdan.php",
dataType:"TEXT",
success: function(data){
if(data.trim()=="OK")
{
alert("购买成功");
}
else if(data.trim()=="YEBUZU")
{
$("#ts").html("余额不足");
$("#ts").css("color","red");
}
else
{
$("#ts").html(data);
$("#ts").css("color","red");
}
}
});
})
</script>
</body>
</html>
7.购物车页面删除处理页面shanchu.php
<?php
session_start(); $sy = $_GET["sy"]; $attr = $_SESSION["gwc"]; if($attr[$sy][1]>1)
{
$attr[$sy][1] = $attr[$sy][1]-1;
}
else
{
unset($attr[$sy]);
$attr = array_values($attr);
}
$_SESSION["gwc"]=$attr; header("location:gouwuche.php");
8.账户余额页面zhanghu.php
<?php
session_start();
$uid = $_SESSION['uid'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title><br />
<style type="text/css">
.list{ width:100%; height:30px; margin-top:10px; text-align:center; line-height:30px; vertical-align:middle}
</style>
</head>
<body>
<div style="width:100%; height:100px; background-color:#6CC">
<h1 style="float:left">大苹果商城</h1>
<a style="float:right; margin-top:40px" href="zhuxiao.php">注销</a>
</div>
<br />
<div style="width:100%; height:600px">
<div id="left" style="width:20%; float:left">
<a href="main.php"><div class="list">浏览商品</div></a>
<a href="zhanghu.php"><div class="list">查看账户</div></a>
<a href="gouwuche.php"><div class="list">查看购物车</div></a>
</div>
<div id="right" style="width:80%; height:150px; float:left">
<?php
include("../DBDA.class.php");
$db = new DBDA();
$sql = "select Account from login where UserName='{$uid}'";
$result = $db->strQuery($sql); echo ("您的账户中还剩余".$result);
?>
</div>
</div> </body>
</html>
PHP购物车模块的实现(php/ajax/session)的更多相关文章
- 用JSP实现的商城购物车模块
这两天,在学习JSP,正好找个小模块来练练手: 下面就是实现购物车模块的页面效果截图: 图1. 产品显示页面 通过此页面进行产品选择,增加到购物车 图2 .购物车页面 图3 . 商品数量设置 好了,先 ...
- 走进Vue时代进阶篇(01):重构电商购物车模块
前言 从这篇文章开始,我准备给大家分享一些关于Vue.js这门框架的技巧性系列文章,正好我们公司项目中也用到了Vue.所以,教是最好的学.进阶篇比较适合于二三线城市,还在小厂打拼的童鞋们.欢迎你们跟着 ...
- python-django框架-电商项目-购物车模块开发_20191125
python-django框架-电商项目-购物车模块开发 商品详情页js代码: 在商品详情页,有加入购物车按钮, 点击加减号可以增加减少,手动输入也可以, 点击加入购物车,就要加过去, 先实现加减的操 ...
- mmall商城购物车模块总结
购物车模块的设计思想 购物车的实现方式有很多,但是最常见的就三种:Cookie,Session,数据库.三种方法各有优劣,适合的场景各不相同.Cookie方法:通过把购物车中的商品数据写入Cookie ...
- Java开源生鲜电商平台-购物车模块的设计与架构(源码可下载)
ava开源生鲜电商平台-购物车模块的设计与架构(源码可下载) 说明:任何一个电商无论是B2C还是B2B都有一个购物车模块,其中最重要的原因就是客户需要的东西放在一起,形成一个购物清单,确认是否有问题, ...
- Mvp快速搭建商城购物车模块
代码地址如下:http://www.demodashi.com/demo/12834.html 前言: 说到MVP的时候其实大家都不陌生,但是涉及到实际项目中使用,还是有些无从下手.因此这里小编带着大 ...
- 商城项目的购物车模块的实现------通过session实现
1.新建购物车的实体类Cart public class Cart implements java.io.Serializable{ private Shangpin shangpin;//存放商品实 ...
- 使用JSP实现商场购物车模块
这些日子,学习JSP,只要找到一个小模块来试试你的手: 这里是实现车模块结果页面截图: 图1. 产品显示页面 通过此页面进行产品选择.增加到购物车 图2 .购物车页面 图3 . 商品数量设置 好了,先 ...
- 淘宝购物车页面 智能搜索框Ajax异步加载数据
如果有朋友对本篇文章的一些知识点不了解的话,可以先阅读此篇文章.在这篇文章中,我大概介绍了一下构建淘宝购物车页面需要的基础知识. 这篇文章主要探讨的是智能搜索框Ajax异步加载数据.jQuery的社区 ...
随机推荐
- js链式调用 柯里化
var d = 1; d.add(2).add(3).add(4) //输出10 写出这个add函数 Number.prototype.add = function(x){ return this + ...
- LeetCode OJ-- N-Queens **
https://oj.leetcode.com/problems/n-queens/ n皇后问题,1皇后有1个解,4皇后2个解,8皇后也有解…… 每个皇后不能在同一行上,同一列上,以及同一条45度线上 ...
- 这一次,我连 web.xml 都不要了,纯 Java 搭建 SSM 环境!
在 Spring Boot 项目中,正常来说是不存在 XML 配置,这是因为 Spring Boot 不推荐使用 XML ,注意,并非不支持,Spring Boot 推荐开发者使用 Java 配置来搭 ...
- Linux下设置开机启动
新配置了vsftpd 需要设置ftp开机启动,linux新手,还不是很熟悉linux下的操作! 查询后发现命令是: chkconfig vsftpd on chkconfig命令用于设置运行级别 ...
- XCODE 4.5 IOS多语言设置 及NSLocalizedString和NSLocalizedStringFromTable的用法。
前 些天升级到Xcode4.5,现在正在用Xcode4.5+IOS6开发项目,当使用国际化时,遇到了一点问题,之前版本Xcode上新建 Localizable.strings后,添加语言的“+”号不见 ...
- 15 THINGS ALL GIRLS SHOULD KNOW ABOUT THEIR VAGINA
Here are 15 facts that EVERY GIRL should know about her vagina. Don’t be shy! Your vagina is part of ...
- 转: php实现的开源电商网站
转:http://www.magentochina.org/what-is-magento
- 收藏以下linux查看系统信息的命令
# uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# hostname ...
- Win7如何解决内存不能为Read的批处理命令
将下面文件保存为"解决内存不能为Read的批处理命令.cmd"双击运行即可 for %%1 in (%WinDir%\system32\*.dll) do regsvr32.e ...
- java查看工具jmap-windows
Prints shared object memory maps or heap memory details for a process, core file, or remote debug se ...