ajax开发:Ajax + PHP session制作购物车

来源:互联网 发布:知乎 漂亮的av 编辑:程序博客网 时间:2024/06/06 00:17

购物车网页代码,具体内容如下

1.登录界面login.php

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=utf-8" />
<scriptsrc="../jquery-1.11.2.min.js"></script>
<title>无标题文档</title>
</head>
 
<body>
<div>用户名:<inputtype="text"id="uid"/></div>
<div>密码:<inputtype="text"id="pwd"/></div>
<inputtype="button"value="登录"id="btn"/>
</body>
<scripttype="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" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ;
        }
        else
        {
          alert("用户名或密码错误");
        }
      }
    })
  })
</script>
</html>

2.登录处理页面loginchuli.php

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
session_start();
 
include("../DBDA.class.php");
$db= newDBDA();
$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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
session_start();
include("../DBDA.class.php");
$db= newDBDA();
?>
 
<!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"><divclass="list">浏览商品</div></a>
    <a href="zhanghu.php"><divclass="list">查看账户</div></a>
    <a href="gouwuche.php"><divclass="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($agwcas $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($attras $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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?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($attras $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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
session_start();
include("../DBDA.class.php");
$db= newDBDA();
$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($attras $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($attras $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($attras $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($attras $v)
  {
    $sxq= "insert into orderdetails values('','{$dingdanhao}','{$v[0]}','{$v[1]}')";
    $db->Query($sxq,0);
  }
}
 
echo"OK";

6.购物车页面

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
session_start();
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=utf-8" />
<title>无标题文档</title><br/>
<styletype="text/css">
.list{ width:100%; height:30px; margin-top:10px; text-align:center; line-height:30px; vertical-align:middle}
</style>
<scriptsrc="../../jquery-1.11.2.min.js"></script>
</head>
 
<body>
<divstyle="width:100%; height:100px; background-color:#6CC">
  <h1style="float:left">大苹果商城</h1>
  <astyle="float:right; margin-top:40px" href="zhuxiao.php">注销</a>
</div>
<br/>
<divstyle="width:100%; height:600px">
  <divid="left"style="width:20%; float:left">
    <ahref="main.php"><divclass="list">浏览商品</div></a>
    <ahref="zhanghu.php"><divclass="list">查看账户</div></a>
    <ahref="gouwuche.php"><divclass="list">查看购物车</div></a>
  </div>
   
  <divid="right"style="width:80%; float:left">
    <tablewidth="100%"border="1"cellpadding="0"cellspacing="0">
    <tr>
      <td>商品名称</td>
      <td>商品单价</td>
      <td>购买数量</td>
      <td>操作</td>
    </tr>
 
<?php
    include("../DBDA.class.php");
    $db= newDBDA();
    $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><ahref='shanchu.php?sy={$k}'>删除</a></td></tr>";
       
    }
     
    ?>
 
    </table>
    <divid="tj">提交订单</div><divid="ts"></div>
  </div>
</div>
 
<scripttype="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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?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">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=utf-8" />
<title>无标题文档</title><br/>
<styletype="text/css">
.list{ width:100%; height:30px; margin-top:10px; text-align:center; line-height:30px; vertical-align:middle}
</style>
</head>
<body>
<divstyle="width:100%; height:100px; background-color:#6CC">
  <h1style="float:left">大苹果商城</h1>
  <astyle="float:right; margin-top:40px" href="zhuxiao.php">注销</a>
</div>
<br/>
<divstyle="width:100%; height:600px">
  <divid="left"style="width:20%; float:left">
    <ahref="main.php"><divclass="list">浏览商品</div></a>
    <ahref="zhanghu.php"><divclass="list">查看账户</div></a>
    <ahref="gouwuche.php"><divclass="list">查看购物车</div></a>
  </div
  <divid="right"style="width:80%; height:150px; float:left">
 
<?php
    include("../DBDA.class.php");
    $db= newDBDA();
    $sql= "select Account from login where UserName='{$uid}'";
    $result = $db->strQuery($sql);
     
    echo ("您的账户中还剩余".$result);
  ?>
 
  </div>
</div>
 
</body>
</html>