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

  • 相关阅读:
    Android9.0/8.1/6.0 默认给系统 app 授予所有权限
    Git——处理Warning: CocoaPods is installed but broken. Skipping pod install. You appear to have CocoaPods installed but it is not working.
    Git——error: RPC failed; curl 56 LibreSSL SSL_read:报错处理
    Git——To install: sudo gem install cocoapods 报错处理
    Xcode——清除缓存相关文件
    vue —— 拉取远程仓库在本地开发
    vue —— mac中配置Node、NPM环境
    Flutter——常见报错处理
    Git——从githup上克隆下一个完整的项目操作步骤
    Git——rebase实际操作遇到的问题
  • 原文地址:https://www.cnblogs.com/bujianchenxi/p/6082733.html
Copyright © 2020-2023  润新知