PHP小白之路3--PHP之购物车模块设计

此项目主要功能是显示数据库商品并带有基础查询功能,点击商品图片下方标题可以显示商品具体信息,可以立即购买或者添加到购物车保存在Cookie中,购物车模块有简单的价格统计,取消购物车某一件商品以及清空购物车的功能.

页面商品列表展示:


查询页面:


点击商品标题显示商品信息:


购物车展示:


清空购物车:


项目目录:


数据库:



代码如下:

goods.php:

<?php
include "mysqli.php";
?>

<div style='width:800px;float:none'>
    <h1>商品列表</h1>
<!--    显示当前系统时间-->
    <h3><p id="demo"></p>
        <script>
            var myVar=setInterval(function(){myTimer()},1000);
            function myTimer() {
                var d = new Date();
                document.getElementById("demo").innerHTML = d.toLocaleTimeString();
            }
        </script>
    </h3>
    <form method="get" action="">
    <table style="100%">
        <tr><td><select name="gid">
                    <option value="0">请选择商品</option>
<?php
function show($fid,$i)
{
    global $mysqli;
    $sql = "select *from goodstype where fid=$fid";
    $result = $mysqli->query($sql);
    $str=" ";
    $i++;
    for($n=1;$n<$i;$n++) {
        $str .= "---";
    }
    $id=$_GET["gid"];
    ?>
    <?php
    while ($row = $result->fetch_assoc()) {
        ?>

        <option <?php if($id==$row['id']){echo "selected";}?> id="<?php echo $str.$row["classname"] ?>" value="<?php echo $row["id"] ?>">
            <?php echo $str.$row["classname"] ?>
        </option>
        <?php
        show($fid=$row["id"],$i);
        ?>
        <?php
    }
}
show(0,0);
    ?>
     <input id="select" type="submit" value="查询"></select></td></tr>
    </table></form>
</div>
<div style="float: none;width: 600px">
<?php
    $id=isset($_GET["gid"])?$id=$_GET["gid"]:0;
    if(!empty($id)){
        $sql="select *from goods where goodstypefid=$id or goodstypefstr like '%$id%' and checkinfo=1 and delstate=0";
    }else{
        $sql="select *from goods";
    }
    $result=$mysqli->query($sql);
    ?>
<table>
    <tr>
<?php
  while($row=$result->fetch_assoc()){
?>
<td>
    <image width="200px" height="200px" src="<?php echo $row["picurl"]?>"></image>
    <a title="查看商品详细信息" href="goodsshow.php?id=<?php echo $row["id"]?>"><?php echo $row["title"]?></a>
</td>
<?php
  }
      ?>
    </tr>
</table>
</div>

goodsshow.php:

<?php
include "mysqli.php";
?>
<script src="../2017829/web/jquery-1.11.0.js"></script>
<script>
    //立即购买
    function buynow(){
        addshoppingcart("buy");
    }
    //添加到购物车
    function addshoppingcart(a){
            $.ajax({
                url:"shoppingcart.php?a=addshoppingcart",
                type:"post",
                data:{'buynum':$("#buynum").val(),'id':$("#id").val()},
                dataType:"html",
                success:function (data) {
                    if(a=="buy"){
                        location.href="shoppingcart.php?a=buynow";
                    }else{
                        if(data){
                            alert("添加购物车成功!");
                        }

                    }

                }
            })
    }
</script>
<?php
$id=$_GET["id"];
$sql="update goods set hits=hits+1 where id=".$id;
$mysqli->query($sql);
$sql="select *from goods where id=".$id;
$result=$mysqli->query($sql);
while($row=$result->fetch_assoc()){
?>
<div>
    <span><?php echo $row["title"] ?></span>
    <hr>
    <image src="<?php echo $row["picurl"] ?>" width="200"></image>
    <br>
    数量:-<input type="text" id="buynum" value="1">+
    价格:
    <del>市场价:<?php echo $row["marketprice"] ?></del>
    出售价:<?php echo $row["salesprice"] ?>
    <input type="hidden" id="id" value="<?php echo $row["id"] ?>">
    <hr>
    内容:<?php echo $row["content"] ?><br>

    <a href="javascript:;" οnclick="buynow()">立刻购买</a>  <a href="javascript:;" οnclick="addshoppingcart()">加入购物车</a>
    <?php
    }
    ?>
</div>

shoppingcart.php:

<style>
    .shoppingcartempty {background: #00FF00}
</style>

<?php
header("Content-type:text/html;charset=utf-8");
include "mysqli.php";

$a=isset($_GET["a"])?$_GET["a"]:"";

//添加购物车
if($a=="addshoppingcart"){
    $buynum=$_POST["buynum"];
    $id=$_POST["id"];
//    echo "<script>alert($buynum+$id)</script>";
    if(!empty($_COOKIE["shoppingcart"]))
        $shoppingcart=unserialize($_COOKIE["shoppingcart"]);
    else
        $shoppingcart=array();
    if(isset($id) && isset($buynum)){
        $id=intval($id);
        $buynum=intval($buynum);
        $shoppingcart[]=array($id,$buynum);
    }

    setcookie('shoppingcart',serialize($shoppingcart));
    echo "true";
    exit();
}
//取消购物车里的一件商品
elseif($a=="delone"){

    $key=$_GET["key"];
    $shoppingcart=unserialize($_COOKIE["shoppingcart"]);
    unset($shoppingcart[$key]);
    if(empty($_COOKIE)){
        setcookie($shoppingcart,"",time()-3600);
    }else{
        setcookie("shoppingcart",serialize($shoppingcart));
    }
    header("location:shoppingcart.php");
    exit();
}
//清空购物车
elseif($a=="empty"){
    unset($_COOKIE["shoppingcart"]);
    setcookie("shoppingcart","",time()-3600);
    header("location:shoppingcart.php");
    exit();
}
if(!empty($_COOKIE["shoppingcart"])){
    ?>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td width="20%" >商品ID</td>
        <td width="35%" height="30">商品名称</td>
        <td width="25%">购买数量</td>
        <td  width="15%">价格</td>
        <td width="5%">操作</td>
    </tr>
    <tr>
        <td height="10" colspan="4"></td>
    </tr>
        <?php
        $totalprice="";
    $shoppingcart=unserialize($_COOKIE["shoppingcart"]);
    foreach ($shoppingcart as $key=>$value){
        $keys=array($key);
        ?>
    <tr>
        <td><?php echo $value[0]?></td>
        <td height="30">
        <?php
        $sql="select *from goods where id=".intval($value[0]);
        $result=$mysqli->query($sql);
        $row=$result->fetch_assoc();
        $totalprice+=$row["salesprice"]*$value[1];
        echo '<a href="goodsshow.php?cid='.$row['goodstypeid'].'&id='.$row['id'].'" class="title" target="_blank">'.$row['title'].'</a>';
        ?>
        </td>
        <td><?php echo $value[1]?></td>
        <td><?php echo $row["salesprice"]*$value[1]?></td>
        <td><a href="shoppingcart.php?a=delone&key=<?php echo $key?>" οnclick="">取消</a></td>
    </tr>

        <?php
    }
    ?>


</table>
    <hr>
    <span style="float: right;width: 250px;height: 150px">
        总价格:<?php echo $totalprice?><a href="">下一步</a>  <a href="shoppingcart.php?a=empty">清空购物车</a>
    </span>
<?php
}
else
{
    echo "<div class='shoppingcartempty'>您的购物车目前没有商品!跳回首页......</div>";
  //两秒后跳回首页
   echo <<<end
   <script>
function showpage(){
 location.href="goods.php";
}
setTimeout("showpage()",2000);
</script> 
end;



}


?>







conn.inc.php:

<?php
define("HOST",'localhost');
define("USER",'root');
define("PWD",'root');
define("DBNAME",'onecms');

mysqli.php:

<?php
include 'conn.inc.php';
$mysqli=new mysqli(HOST,USER,PWD,DBNAME);
if($mysqli->connect_errno){
    die('数据库链接出错'.$mysqli->connect_error);
}

以上为全部代码,简单购物车功能就实现了.


  • 12
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值