首页 > 代码库 > PHP购物车模块的实现(php/ajax/session)

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

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

<?phpsession_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=http://www.mamicode.com/‘goumai.php?code={$v[0]}‘>购买</a></td></tr>";        }        ?>
                </table>    </div></div></body></html>

技术分享

 

 4.购买处理页面goumai.php

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

<?phpsession_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.购物车页面

<?phpsession_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=http://www.mamicode.com/‘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

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

<?phpsession_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)