在wamp环境下,用PHP的session会话控制完成购物车的效果,数据存放在数组里练习,没有连接数据库,效果不错,简单易懂,以下是各部分的代码

common.php

<?phpheader("content-type:text/html;charset=utf-8");$arrPro = array(    array('id'=>1,'img'=>'img/1.jpg','title'=>'小米移动电源5000mAh','price'=>49),    array('id'=>2,'img'=>'img/2.jpg','title'=>'20000mAh小米移动电源2','price'=>149),    array('id'=>3,'img'=>'img/3.jpg','title'=>'小米圈铁耳机Pro','price'=>129),    array('id'=>4,'img'=>'img/4.jpg','title'=>'小米家电动滑板车','price'=>1999),    array('id'=>5,'img'=>'img/5.jpg','title'=>'小米笔记本','price'=>3499),    array('id'=>6,'img'=>'img/6.jpg','title'=>'米家LED智能台灯','price'=>169),    array('id'=>7,'img'=>'img/7.jpg','title'=>'小米体重秤','price'=>99),    array('id'=>8,'img'=>'img/8.png','title'=>'小米电视3s 48英寸','price'=>2599)  );

index.php

<?php header("content-type:text/html;charset=utf-8");require 'common.php';session_start();$sum = 0;$class = "";//判断左上角购物车的样式显示if(!empty($_SESSION['shopcar'])){  $data = $_SESSION['shopcar'];  $sum = array_sum($data[4]);  $class = "on";  //右上角圆点    if(empty($data[0])){      $class = "";    }  }?><!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>商品展示</title>  <style type="text/css">  section{    width:1032px;    height: 700px;    margin: 40px auto;  }  .top{    float: right;    position: relative;    width: 190px;    height: 34px;    border: 1px solid #ccc;    margin-right: 32px;    text-align: center;    line-height: 34px;    border-radius: 4px;    transition: all .3s linear;    -moz-transition: all .3s linear;    -webkit-transition: all .3s linear;  }  .top a{    color: #d00;  }  .top:hover{    width: 210px;    color: #fff;    font-weight: bold;    background-color: #d00;    border-radius: 6px;  }  .top:hover a{    color: #fff;  }  .top:hover span{    background-color: #fff;    color: #d00;  }  .top:hover .star{    right:150px;    top: 0;    font-size: 14px;    color: #ff0;    transform: rotate(1080deg);  }  .top span{    position: absolute;    top:2px;    right: 40px;    width: 18px;    height: 18px;    font-weight: bold;    border-radius: 9px;    line-height: 18px;    text-align: center;    font-size: 12px;    font-weight: border;    color: #fff;  }  .star{    color: #fff;    font-size: 48px;    font-style: normal;    position: absolute;    right:530px;    top:186px;    transform: rotate(60deg);    transition: all .3s ease;  }  .on{    background-color: #e00;  }  .list{    margin: 20px 20px;    padding: 36px 0;    list-style: none;  }    a{    display: block;    color: #757575;    text-decoration: none;  }  .list li{    float: left;    height: 246px;    width: 234px;    padding: 10px 0 20px;    margin-right:12px;    margin-top: 20px;    border: 1px solid #ccc;    background: #fff;    -webkit-transition: all .2s linear;    transition: all .2s linear;  }  .list li:hover{    box-shadow: 2px 4px 5px #aaa;  }  .figure{    width: 150px;    height: 150px;    margin: 0 auto 18px;  }  .title{    color: #222;    font-size: 14px;    font-weight: normal;    text-align: center;  }  .price{    margin: 0 10px 10px;    text-align: center;    color: #ff6700;  }  .cart{    margin: 0 15px 5px;    text-align: center;  }  .cart a{    color: #a34;    width: 190px;    height: 24px;    border-radius: 4px;    margin: 0 8px 5px;    text-align: center;  }  .cart a:hover{    color: #eee;    box-shadow: 0 2px 1px #333,0 2px 1px #666;    background-color: #ccc;    background-image: linear-gradient(#33a6b8,#0089a7)  }  .num{    text-align: center;    color: #ff6700;  }  </style></head><body>  <section>  <p class='top'>  <a href="spcar.php" rel="external nofollow" >我的购物车</a><span class="<?php echo $class;?>"><?php echo $sum;?></span>  <em class='star'>★</em>  </p>  <ul class="list">  <?php foreach ($arrPro as $key => $value):?>  <li>    <p class="figure">     <a href=""><img src=" rel="external nofollow" <?php echo $value['img'];?>" width="150" height="150" alt="小米移动电源5000mAh"></a>     </p>     <h3 class="title">     <a href=""><?php echo $value['title'];?></a>    </h3>     <p class="price"><span class="num">¥<?php echo $value['price'];?></span></p>    <p class='cart'><a href="action.php?id=<?php echo $value['id'];?>" rel="external nofollow" >加入购物车</a></p>  </li>  <?php endforeach;?>  </ul>  <p style='clear:both'></p>  </section></body></html>

action.php

<?phpif(!empty($_GET['id'])){  require 'common.php';  session_start();  $id = $_GET['id'];  //把所选ID的商品信息遍历出来  foreach ($arrPro as $key => $value) {    if($id == $value['id']){    $arrData = $arrPro[$key];    }  }  //用一个新的二维数组把商品信息存起来  $arrDatax[0][$arrData['id']] = $arrData['id'];  $arrDatax[1][$arrData['id']] = $arrData['img'];  $arrDatax[2][$arrData['id']] = $arrData['title'];  $arrDatax[3][$arrData['id']] = $arrData['price'];  $arrDatax[4][$arrData['id']] = 1;  //判断是否有SESSION存在,有则在数组后添加,没有则直接存  if(empty($_SESSION['shopcar'])){    $_SESSION['shopcar'] = $arrDatax;    header('Location:index.php');  }else{    //第一次购物之后的购物    //重新取出来,防止数据覆盖    $arrDataz = $_SESSION['shopcar'];    if(in_array($id,$arrDataz[0])){      $arrDataz[4][$arrData['id']] += 1;      $_SESSION['shopcar'] = $arrDataz;      header('Location:index.php');    }else{      $arrDataz[0][$arrData['id']] = $arrData['id'];      $arrDataz[1][$arrData['id']] = $arrData['img'];      $arrDataz[2][$arrData['id']] = $arrData['title'];      $arrDataz[3][$arrData['id']] = $arrData['price'];      $arrDataz[4][$arrData['id']] = 1;      $_SESSION['shopcar'] = $arrDataz;      header('Location:index.php');    }  }}else{  echo "购物车没有商品!";}

spcar.php

<?phpif(!empty($_GET['id'])){  require 'common.php';  session_start();  $id = $_GET['id'];  //把所选ID的商品信息遍历出来  foreach ($arrPro as $key => $value) {    if($id == $value['id']){    $arrData = $arrPro[$key];    }  }  //用一个新的二维数组把商品信息存起来  $arrDatax[0][$arrData['id']] = $arrData['id'];  $arrDatax[1][$arrData['id']] = $arrData['img'];  $arrDatax[2][$arrData['id']] = $arrData['title'];  $arrDatax[3][$arrData['id']] = $arrData['price'];  $arrDatax[4][$arrData['id']] = 1;  //判断是否有SESSION存在,有则在数组后添加,没有则直接存  if(empty($_SESSION['shopcar'])){    $_SESSION['shopcar'] = $arrDatax;    header('Location:index.php');  }else{    //第一次购物之后的购物    //重新取出来,防止数据覆盖    $arrDataz = $_SESSION['shopcar'];    if(in_array($id,$arrDataz[0])){      $arrDataz[4][$arrData['id']] += 1;      $_SESSION['shopcar'] = $arrDataz;      header('Location:index.php');    }else{      $arrDataz[0][$arrData['id']] = $arrData['id'];      $arrDataz[1][$arrData['id']] = $arrData['img'];      $arrDataz[2][$arrData['id']] = $arrData['title'];      $arrDataz[3][$arrData['id']] = $arrData['price'];      $arrDataz[4][$arrData['id']] = 1;      $_SESSION['shopcar'] = $arrDataz;      header('Location:index.php');    }  }}else{  echo "购物车没有商品!";}

delete.php

<?phpsession_start();if(!empty($_GET['id'])){  $arrData = $_SESSION['shopcar'];  //判断对应的商品ID信息    if(in_array($_GET['id'],$arrData[0])){      unset($arrData[0][$_GET['id']]);      unset($arrData[1][$_GET['id']]);      unset($arrData[2][$_GET['id']]);      unset($arrData[3][$_GET['id']]);      unset($arrData[4][$_GET['id']]);      $_SESSION['shopcar'] = $arrData;    }    header('Location:spcar.php');}

相关学习推荐:PHP编程从入门到精通

更多相关文章

  1. 分享php生成不重复随机数、数组的4种方法
  2. 学习php中利用explode函数分割字符串到数组
  3. PHP 二维数组排序保持键名不变的方法
  4. 学习PHP查找一列有序数组是否包含某值的方法
  5. 总结PHP字符串与数组处理函数用法
  6. 总结PHP实现提取多维数组指定一列的方法
  7. PHP数组常用函数总结
  8. 5种PHP定义数组的方法
  9. PHP常见数组排序方法小汇总

随机推荐

  1. Android处理各种触摸事件
  2. Android周报第二十四期
  3. android 支持 安装到 SD卡
  4. Android创建和删除桌面快捷方式
  5. android 小问题记录
  6. Mac Android(安卓)FFMpeg 编译及集成
  7. android 开机自启动程序2
  8. 【Android】Android内存溢出问题---用自
  9. android activity非全屏、透明
  10. Android studio 签名 报错:Could not down