zoukankan      html  css  js  c++  java
  • php 实用例子:购物车 涉及session与ajax

    login:

    <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>

    loginchuli:

    <?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!="")
    {
     $_SESSION["uid"]=$uid;
     echo "OK";
    }
    else
    {
     echo "NO";
    }

    main:

    <?php
    session_start();
    include("../DBDA.class.php");
    $db = new DBDA();
    ?>

    <style type="text/css">
    .list{ 100%; height:30px; margin-top:10px; text-align:center; line-height:30px; vertical-align:middle}
    </style>

    <div style="100%; height:100px;
     <h1 style="float:left">大苹果商城</h1>
        <a style="float:right; margin-top:40px" href="zhuxiao.php">注销</a>
    </div>
    <br />
    <div style="100%; height:600px">
     <div id="left" style="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="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>

    goumai:

    <?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");

    gouwuche:

    <div style="100%; height:100px;
     <h1 style="float:left">大苹果商城</h1>
        <a style="float:right; margin-top:40px" href="zhuxiao.php">注销</a>
    </div>
    <br />
    <div style="100%; height:600px">
     <div id="left" style="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="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>

    dingdan:

    <?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";

    shanchu:

    <?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");

  • 相关阅读:
    Codeforces 691A Fashion in Berland
    HDU 5741 Helter Skelter
    HDU 5735 Born Slippy
    HDU 5739 Fantasia
    HDU 5738 Eureka
    HDU 5734 Acperience
    HDU 5742 It's All In The Mind
    POJ Euro Efficiency 1252
    AtCoder Beginner Contest 067 C
    AtCoder Beginner Contest 067 D
  • 原文地址:https://www.cnblogs.com/bujianchenxi/p/6082733.html
Copyright © 2011-2022 走看看