购物车网页代码

1.登录界面login.php

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <script src="../jquery-1.11.2.min.js"></script>
  6. <title>无标题文档</title>
  7. </head>
  8.  
  9. <body>
  10. <div>用户名:<input type="text" id="uid" /></div>
  11. <div>密码:<input type="text" id="pwd" /></div>
  12. <input type="button" value="登录" id="btn" />
  13. </body>
  14. <script type="text/javascript">
  15. $("#btn").click(function(){
  16. var uid = $("#uid").val();
  17. var pwd = $("#pwd").val();
  18. $.ajax({
  19. url:"loginchuli.php",
  20. data:{u:uid,p:pwd},
  21. type:"POST",
  22. dataType:"TEXT",
  23. success: function(data){
  24. if(data.trim()=="OK")
  25. {
  26. window.location.href="main.php";
  27. }
  28. else
  29. {
  30. alert("用户名或密码错误");
  31. }
  32. }
  33. })
  34. })
  35. </script>
  36. </html>

2.登录处理页面loginchuli.php

  1. <?php
  2. session_start();
  3.  
  4. include("../DBDA.class.php");
  5. $db = new DBDA();
  6. $uid = $_POST["u"];
  7. $pwd = $_POST["p"];
  8. $sql = "select password from login where username='{$uid}'";
  9. $mm = $db->StrQuery($sql);
  10. if($mm==$pwd && $pwd!="")
  11. {
  12. $UserName = $_POST["uid"];
  13. $_SESSION["uid"]=$uid;
  14. echo "OK";
  15. }
  16. else
  17. {
  18. echo "NO";
  19. }

3.主页面main.php

  1. <?php
  2. session_start();
  3. include("../DBDA.class.php");
  4. $db = new DBDA();
  5. ?>
  6.  
  7. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  8. <html xmlns="http://www.w3.org/1999/xhtml">
  9. <head>
  10. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  11. <title>无标题文档</title><br />
  12. <style type="text/css">
  13. .list{ width:100%; height:30px; margin-top:10px; text-align:center; line-height:30px; vertical-align:middle}
  14. </style>
  15. </head>
  16. <body>
  17. <div style="width:100%; height:100px; background-color:#6CC">
  18. <h1 style="float:left">大苹果商城</h1>
  19. <a style="float:right; margin-top:40px" href="zhuxiao.php">注销</a>
  20. </div>
  21. <br />
  22. <div style="width:100%; height:600px">
  23. <div id="left" style="width:20%; float:left">
  24. <a href="main.php"><div class="list">浏览商品</div></a>
  25. <a href="zhanghu.php"><div class="list">查看账户</div></a>
  26. <a href="gouwuche.php"><div class="list">查看购物车</div></a>
  27. </div>
  28.  
  29. <div id="right" style="width:80%; float:left">
  30.  
  31. <?php
  32. $agwc = array();
  33. if(!empty($_SESSION["gwc"]))
  34. {
  35. $agwc = $_SESSION["gwc"];
  36. }
  37. $zhonglei = count($agwc);
  38. $sum = 0;
  39. foreach($agwc as $v)
  40. {
  41. $sql = "select price from fruit where ids='{$v[0]}'";
  42. $danjia = $db->StrQuery($sql);
  43. $sum = $sum +$danjia*$v[1];
  44. }
  45. echo "<div>购物车中有:{$zhonglei}种商品,总价格为:{$sum}元.</div>";
  46. ?>
  47.  
  48. <table width="100%" border="1" cellpadding="0" cellspacing="0">
  49. <tr>
  50. <td>代号</td>
  51. <td>水果名称</td>
  52. <td>水果价格</td>
  53. <td>源产地</td>
  54. <td>库存量</td>
  55. <td>操作</td>
  56. </tr>
  57.  
  58. <?php
  59. $sql = "select * from fruit";
  60. $attr = $db->Query($sql);
  61.  
  62. foreach($attr as $v)
  63. {
  64. echo "<tr><td>{$v[0]}</td>
  65. <td>{$v[1]}</td>
  66. <td>{$v[2]}</td>
  67. <td>{$v[3]}</td>
  68. <td>{$v[4]}</td>
  69. <td><a href='goumai.php?code={$v[0]}'>购买</a></td></tr>";
  70. }
  71. ?>
  72.  
  73. </table>
  74. </div>
  75. </div>
  76.  
  77. </body>
  78. </html>

4.购买处理页面goumai.php

  1. <?php
  2. session_start();
  3. $code = $_GET["code"];
  4.  
  5. if(empty($_SESSION["gwc"]))
  6. {
  7. //第一次点击购买
  8. $attr = array(
  9. array($code,1)
  10. );
  11. $_SESSION["gwc"] = $attr;
  12. }
  13. else
  14. {
  15. //不是第一次点击购买
  16. $attr = $_SESSION["gwc"];
  17. $bs=0;
  18. foreach($attr as $k=>$v)
  19. {
  20. if($v[0]==$code)
  21. {
  22. $bs=1;
  23. $attr[$k][1] = $attr[$k][1]+1;
  24. }
  25. }
  26. //如果没有在数组里面出现
  27. if($bs==0)
  28. {
  29. $shuzu = array($code,1);
  30. $attr[] = $shuzu;
  31. }
  32.  
  33. $_SESSION["gwc"]=$attr;
  34.  
  35. }
  36. header("location:main.php");

5.订单处理页面,计算选取水果的总价,和水果剩余量。dingdan.php

  1. <?php
  2. session_start();
  3. include("../DBDA.class.php");
  4. $db = new DBDA();
  5. $uid = $_SESSION["uid"];
  6. $attr = array();
  7. if(!empty($_SESSION["gwc"]))
  8. {
  9. $attr = $_SESSION["gwc"];
  10. }
  11. //看下两个条件是否都满足
  12. $bs = true;
  13.  
  14. //判断余额是否满足
  15. //根据用户名找余额
  16. $syue = "select account from login where username='{$uid}'";
  17. $yue = $db->StrQuery($syue);
  18.  
  19. //根据购物车数组取总金额
  20. $sum = 0;
  21. foreach($attr as $v)
  22. {
  23. $sql = "select price from fruit where ids='{$v[0]}'";
  24. $danjia = $db->StrQuery($sql);
  25. $sum = $sum +$danjia*$v[1];
  26. }
  27. if($yue<$sum)
  28. {
  29. $bs = false;
  30. echo "YEBUZU";
  31. exit;
  32. }
  33.  
  34. //判断库存是否满足
  35.  
  36. foreach($attr as $v)
  37. {
  38. $skucun = "select name,numbers from fruit where ids='{$v[0]}'";
  39. $akucun = $db->Query($skucun);
  40. if($akucun[0][1]<$v[1])
  41. {
  42. $bs = false;
  43. echo "{$akucun[0][0]}库存不足!";
  44. exit;
  45.  
  46. }
  47. }
  48.  
  49. //添加订单,减库存,减余额
  50.  
  51. if($bs)
  52. {
  53. //减库存
  54. foreach($attr as $v)
  55. {
  56. $sql = "update fruit set numbers = numbers-{$v[1]} where ids='{$v[0]}'";
  57. $db->Query($sql,0);
  58. }
  59.  
  60. //减余额
  61. $jianyue="update login set account=account-{$sum} where username='{$uid}'";
  62. $db->Query($jianyue,0);
  63.  
  64. //添加订单
  65. $dingdanhao = $uid+date("YmdHis");
  66. $t = time();
  67.  
  68. $sorder = "insert into orders values('{$dingdanhao}','{$uid}','{$t}')";
  69. $db->Query($sorder,0);
  70.  
  71. foreach($attr as $v)
  72. {
  73. $sxq = "insert into orderdetails values('','{$dingdanhao}','{$v[0]}','{$v[1]}')";
  74. $db->Query($sxq,0);
  75. }
  76. }
  77.  
  78. echo "OK";

6.购物车页面

  1. <?php
  2. session_start();
  3. ?>
  4.  
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  9. <title>无标题文档</title><br />
  10. <style type="text/css">
  11. .list{ width:100%; height:30px; margin-top:10px; text-align:center; line-height:30px; vertical-align:middle}
  12. </style>
  13. <script src="../../jquery-1.11.2.min.js"></script>
  14. </head>
  15.  
  16. <body>
  17. <div style="width:100%; height:100px; background-color:#6CC">
  18. <h1 style="float:left">大苹果商城</h1>
  19. <a style="float:right; margin-top:40px" href="zhuxiao.php">注销</a>
  20. </div>
  21. <br />
  22. <div style="width:100%; height:600px">
  23. <div id="left" style="width:20%; float:left">
  24. <a href="main.php"><div class="list">浏览商品</div></a>
  25. <a href="zhanghu.php"><div class="list">查看账户</div></a>
  26. <a href="gouwuche.php"><div class="list">查看购物车</div></a>
  27. </div>
  28.  
  29. <div id="right" style="width:80%; float:left">
  30. <table width="100%" border="1" cellpadding="0" cellspacing="0">
  31. <tr>
  32. <td>商品名称</td>
  33. <td>商品单价</td>
  34. <td>购买数量</td>
  35. <td>操作</td>
  36. </tr>
  37.  
  38. <?php
  39. include("../DBDA.class.php");
  40. $db = new DBDA();
  41. $attr=array();
  42. if(!empty($_SESSION["gwc"]))
  43. {
  44. $attr = $_SESSION["gwc"];
  45. }
  46.  
  47. foreach($attr as $k=>$v)
  48. {
  49. $sql = "select name,price from fruit where ids='{$v[0]}'";
  50. $ashuiguo = $db->Query($sql);
  51.  
  52. 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>";
  53.  
  54. }
  55.  
  56. ?>
  57.  
  58. </table>
  59. <div id="tj">提交订单</div><div id="ts"></div>
  60. </div>
  61. </div>
  62.  
  63. <script type="text/javascript">
  64. $("#tj").click(function(){
  65. $.ajax({
  66. url:"dingdan.php",
  67. dataType:"TEXT",
  68. success: function(data){
  69. if(data.trim()=="OK")
  70. {
  71. alert("购买成功");
  72. }
  73. else if(data.trim()=="YEBUZU")
  74. {
  75. $("#ts").html("余额不足");
  76. $("#ts").css("color","red");
  77. }
  78. else
  79. {
  80. $("#ts").html(data);
  81. $("#ts").css("color","red");
  82. }
  83. }
  84. });
  85. })
  86. </script>
  87. </body>
  88. </html>

7.购物车页面删除处理页面shanchu.php

  1. <?php
  2. session_start();
  3.  
  4. $sy = $_GET["sy"];
  5.  
  6. $attr = $_SESSION["gwc"];
  7.  
  8. if($attr[$sy][1]>1)
  9. {
  10. $attr[$sy][1] = $attr[$sy][1]-1;
  11. }
  12. else
  13. {
  14. unset($attr[$sy]);
  15. $attr = array_values($attr);
  16. }
  17. $_SESSION["gwc"]=$attr;
  18.  
  19. header("location:gouwuche.php");
  20.  
  21. 8.账户余额页面zhanghu.php
  22.  
  23. <?php
  24. session_start();
  25. $uid = $_SESSION['uid'];
  26. ?>
  27.  
  28. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  29. <html xmlns="http://www.w3.org/1999/xhtml">
  30. <head>
  31. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  32. <title>无标题文档</title><br />
  33. <style type="text/css">
  34. .list{ width:100%; height:30px; margin-top:10px; text-align:center; line-height:30px; vertical-align:middle}
  35. </style>
  36. </head>
  37. <body>
  38. <div style="width:100%; height:100px; background-color:#6CC">
  39. <h1 style="float:left">大苹果商城</h1>
  40. <a style="float:right; margin-top:40px" href="zhuxiao.php">注销</a>
  41. </div>
  42. <br />
  43. <div style="width:100%; height:600px">
  44. <div id="left" style="width:20%; float:left">
  45. <a href="main.php"><div class="list">浏览商品</div></a>
  46. <a href="zhanghu.php"><div class="list">查看账户</div></a>
  47. <a href="gouwuche.php"><div class="list">查看购物车</div></a>
  48. </div>
  49. <div id="right" style="width:80%; height:150px; float:left">
  50.  
  51. <?php
  52. include("../DBDA.class.php");
  53. $db = new DBDA();
  54. $sql = "select Account from login where UserName='{$uid}'";
  55. $result = $db->strQuery($sql);
  56.  
  57. echo ("您的账户中还剩余".$result);
  58. ?>
  59.  
  60. </div>
  61. </div>
  62.  
  63. </body>
  64. </html>

ajax、PHP、session做购物车的更多相关文章

  1. AJAX安全-Session做Token

    个人思路,请大神看到了指点 个人理解token是防止扫号机或者恶意注册.恶意发表灌水,有些JS写的token算法,也会被抓出来被利用,个人感觉还是用会过期的Session做token更好,服务器存储, ...

  2. 11月14日用AJAX、PHP、SESSION做购物车

    购物车网页代码 1.登录界面login.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

  3. 用ajax、PHP、session做购物车

    购物车网页代码 1.登录界面login.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

  4. html5与js关于input[type='text']文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange和文本框的value点击全选状态onclick="select();"。做购物车页面时会要用到。

    关于input[type='text']文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange和文本框的点击全选状态onclick="s ...

  5. 处理jquery的ajax请求session过期跳转到登录页面

    首先需要在拦截器中判断是否是ajax请求,如果是 if(isAjaxRequest(request)){//ajax请求 response.setHeader("sessionstatus& ...

  6. vue做购物车

    写一点废话,昨天敲代码找bug,找了好久都没找到,后来一哥们找到他说,找代码的bug就像男女朋友吵架,女问男你错了没,男说错啦,女再问错哪了,男傻眼了不知道错哪.在找代码的过程中一直知道我错啦就是找不 ...

  7. 会话技术之Session(购物车加入、查看和清空)

    会话技术之Session session:服务器端会话技术 当我们第一次访问的服务器的时候,服务器获取id, 能获取id 要拿着这个id去服务器中查找有无此session 若查找到了:直接拿过来将数据 ...

  8. Django中数据传输编码格式、ajax发送json数据、ajax发送文件、django序列化组件、ajax结合sweetalert做二次弹窗、批量增加数据

    前后端传输数据的编码格式(contentType) 提交post请求的两种方式: form表单 ajax请求 前后端传输数据的编码格式 urlencoded formdata(form表单里的) ja ...

  9. session实现购物车

    为实现简单的购物功能(购物车添加.账户查看.购物车商品删除.实时的购物商品数量及价格的计算显示.购物车商品数量可手动输入等),用session实现了一简单的以php语言为基础.连接MySQL数据库的购 ...

随机推荐

  1. [系统启动]Printk与sched_clock_init的一点分析

     作者:Younger Liu, 本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可. 在分析Linu内核启动的过程中,发现一段"不平常" ...

  2. 线段树区间更新操作及Lazy思想(详解)

    此题题意很好懂:  给你N个数,Q个操作,操作有两种,‘Q a b ’是询问a~b这段数的和,‘C a b c’是把a~b这段数都加上c. 需要用到线段树的,update:成段增减,query:区间求 ...

  3. 学习java的感受

    学习java有一段时间了,发现现在只是才了解java,还在门槛外边. 有时候真感觉这是不是一种外星语言,各种方法各种类各种借口,总是傻傻分不清.  学过的知识过一个星期就开始模糊,有时半夜睡不着的时候 ...

  4. CentOS编译安装emacs并配置

    Liunxs中CentOS系列一向以稳定为目标,然而也会存在版本太旧的问题,emacs就是其中的一个,目前emacs都发行到25.2了,而CentOS上的emacs版本却还是23.1.所以需要下载源代 ...

  5. python基本运算

    环境:python3.x a,b = 60,164 一.算数运算符 操作符 描述 例子 + 加法 a+b = 224 - 减法 a-b = -104 * 乘法 a*b = 9840 / 除(保留小数位 ...

  6. C#基础知识-基本的流程控制语句(三)

    所谓的流程控制就是在程序运行中控制程序的走向,可以通过各种的条件判断执行代码的顺序,有if... if...else.. else...if |switch case...|while... Do.. ...

  7. chkconfig命令(管理开机自启)

    提供了一个简单的命令行工具来维护/etc/rc[0-6].d目录层次结构通过减轻系统管理员的直接操作任务,在这些目录中的许多符号链接.仅是简单的改变了符号链接,而非立即启动或禁止一个服务. 语法: c ...

  8. spring boot --- 初级体验

    Spring boot的介绍我就不多说了,网上可以自己看一下. 它的优点就是:快!适合小白,没有复杂的配置文件. 缺点也很明显:坑有些多, 文档略少,报错有时不知道该如何处理. 下面做个最简单的入门: ...

  9. CentOS 6.x 本地yum源配置与使用

    系统默认已经安装了可使用yum的软件包,所以可以直接配置: # mount  /dev/cdrom  /mnt                                挂载镜像,可以写到配置文件 ...

  10. FutureTask——另一种闭锁的实现

    关于多线程,我们接触对多的,最基础,入门的可能就是实现Runnable接口继承Thead类,因为Java单继承的原因,通常建议是实现Runnable接口.但这种"简单"的线程会带来 ...