商品对比调用的JS文件(包含了商品对比框浮动JS):

/*浮动窗口*/
(function(){  
  var n=10;
  var obj=document.getElementById("goods-compare");
  if(!obj){
    return false;
  }
  var x=0;
  window.onscroll=function(){
    obj.style.top=(document.body.scrollTop||document.documentElement.scrollTop)+n+'px';
  };
  window.onresize=function(){
    obj.style.top=(document.body.scrollTop||document.documentElement.scrollTop)+n+'px';
  };  
})();
  
//添加显示对比框
function addcompare(chk){
  $('#goods-compare').fadeIn().show();
  var count=$(".compare-box li").length;
  if (count>2)//这里可以修改对比的数据哦
  {
    alert('产品比较最多选3种哦');
    return;
  }
  
  $.ajax({
    type: 'post',
    url: 'ajax.php',
    data: {
      'action':'1',
      'gid':chk.gid,//商品ID
      'gname':chk.gname,//商品名称
      'gtype':chk.gtype//商品类别,类别不同时不能比较
    },
    cache: false,
    async: false,
    success: function(result) {
      if(result!='')
      {
        alert(result);
      }else{
        var url='http://www.lusen.com/product-'+chk.gid+'.html';//设置商品的链接地址
        $(".compare-box").append("<li class='division clearfix' id='"+chk.gid+"'><div class='span-3'><a href='"+url+"' target='_blank' title='"+chk.gname+"'>'"+chk.gname+"'</a></div><span onclick=\"removecompare('"+chk.gid+"');\">删除</span></li>")
        $("#comids").val($(".compare-box li").map(function(){//将对比的所有商品ID,赋值给#comids
          return $(this).attr('id');
        }).get().join(","));
      }
    }
  });
}
  
//删除对比产品
function removecompare(id)
{
  $.ajax({
    type: 'post',
    url: 'ajax.php',
    data: {
      'action':'2',
      'gid':id
    },
    cache: false,
    success: function(result) {
      $("#"+id).remove();
      $("#comids").val($(".compare-box li").map(function(){
        return $(this).attr('id');
      }).get().join(","));
    }
  });
   
}
//清空对比产品
function clearcompare()
{  
  $.ajax({
    type: 'post',
    url: 'ajax.php',
    data: {
      'action':'3'
    },
    cache: false,
    success: function(result) {
      $(".compare-box").html('');
      $("#comids").val('');
    }
  });
}
//显示对比框
function showcompare()
{
  $.ajax({
    type: 'post',
    url: 'ajax.php',
    data: {
      'action':'4'
    },
    success: function(result) {
      if(result){
        $(".compare-box").append(result);
        $("#comids").val($(".compare-box li").map(function(){
          return $(this).attr('id');
        }).get().join(","));
        $('#goods-compare').fadeIn().show();
      }
    }
  });
   
}
  
//点击关闭对比框
$('.close-gc').click(function(){
  $('#goods-compare').fadeOut().hide();
});

商品对比调用Ajax文件:

<?php
function mb_unserialize($serial_str) {
  $serial_str =stripslashes($serial_str);
  return unserialize($serial_str);
}
if($_POST['action']=='1') {//add
  if(isset($_COOKIE['gtype'])) {
    if($_COOKIE['gtype']!=$_POST['gtype']) {
      echo '对不起,您选择的是不同类别的产品无法加入对比,请选择同类产品或清空当前对比栏再选择。';
      return;
    }
  }else {
    setcookie('gtype',$_POST['gtype']);
  }
  if(isset($_COOKIE['gid'])) {
    $arr_str = $_COOKIE['gid'];
    $arr=mb_unserialize($arr_str);
    if(count($arr)>2) {//商品比较数量
      echo "商品比较最多选3种";
      return;
    }
    foreach($arr as $val) {
      if($val[0]==$_POST['gid']) {
        echo "该商品已经加入对比框";
        return;
      }
    }
    $info=array($_POST['gid'],$_POST['gname'],$_POST['gtype']);
    $arr[]=$info;
    $arr_str=serialize($arr);
    setcookie('gid',$arr_str);
  }else {
    $info=array($_POST['gid'],$_POST['gname'],$_POST['gtype']);
    $arr[]=$info;
    $arr_str=serialize($arr);
    setcookie('gid',$arr_str);
  }
}else if($_POST['action']=='2') {//delone
  $id=$_POST['gid'];
  $arr_str = $_COOKIE['gid'];
  $arr=mb_unserialize($arr_str);  
  foreach($arr as $key=>$val) {
    if($val[0]==$id) {
      unset ($arr[$key]);
    }
  }
  $arr_str=serialize($arr);  
  setcookie('gid',$arr_str);
}else if($_POST['action']=='3') {//delall
  setcookie('gid','');
  setcookie('gtype','');
}else if($_POST['action']=='4') {//showlist
  if(isset($_COOKIE['gid'])) {
    $data='';
    $arr_str = $_COOKIE['gid'];
    $arr=mb_unserialize($arr_str); 
    foreach ($arr as $val){     
      $url="http://www.lusen.com/product-".$val[0].".html";
      $data.="<li id='{$val[0]}' class='division clearfix'><div class='span-3'><a href='{$url}' target='_blank' title='{$val[1]}'>{$val[1]}</a></div><span onclick=\"removecompare('{$val[0]}');\">删除</span></li>";
    }
    echo $data;
  }  
}
?>

php商品对比功能代码分享的更多相关文章

  1. 手机开发必备技巧:javascript及CSS功能代码分享

    1. viewport: 也就是可视区域.对于桌面浏览器,我们都很清楚viewport是什么,就是出去了所有工具栏.状态栏.滚动条等等之后用于看网页的区域,这是真正有效的区域.由于移动设备屏幕宽度不同 ...

  2. jQuery实现的手机发送验证码倒计时效果代码分享

    这是一款基于jquery实现的手机发送验证码倒计时效果代码,可实现实时显示秒数倒计时的功能,还可实现对手机号码格式验证的功能,是一款常用的网站注册发送手机验证码特效代码. 效果描述:注册一个网站,当需 ...

  3. JAVA基础代码分享--DVD管理

    问题描述 为某音像店开发一个迷你DVD管理器,最多可存6张DVD,实现碟片的管理. 管理器具备的功能主要有: 1.查看DVD信息. 菜单选择查看功能,展示DVD的信息. 2.新增DVD信息 选择新增功 ...

  4. 原生JS实现购物车结算功能代码+zepto版

    html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  5. 【PHP开源产品】Ecshop的商品筛选功能实现分析之一

    一.首先,说明一下为什么要对category.php文件进行分析. 原因如下: ①个人对商城类商品筛选功能的实现比较好奇: ②对商城中关于商品的数据表设计比较感兴趣.(该功能涉及到与数据库的交互,而且 ...

  6. php版获取重定向后地址的代码分享

    如何获取重定向的地址呢?我们用php实现这样的功能,分享下我的代码,有需要的朋友参考下. 代码如下: <?php //取重定向的地址 class RedirectUrl{ //地址 var $u ...

  7. SpringMVC由浅入深day01_9商品修改功能开发

    9 商品修改功能开发 9.1 需求 操作流程: 1.进入商品查询列表页面 2.点击修改,进入商品修改页面,页面中显示了要修改的商品(从数据库查询) 要修改的商品从数据库查询,根据商品id(主键)查询商 ...

  8. JAVAEE——宜立方商城04:图片服务器FastDFS、富文本编辑器KindEditor、商品添加功能完成

    1. 学习计划 1.图片上传 a) 图片服务器FastDFS b) 图片上传功能实现 2.富文本编辑器的使用KindEditor 3.商品添加功能完成 2. 图片服务器的安装 1.存储空间可扩展. 2 ...

  9. 【SSH网上商城项目实战09】添加和更新商品类别功能的实现

    转自:https://blog.csdn.net/eson_15/article/details/51347734 上一节我们做完了查询和删除商品的功能,这一节我们做一下添加和更新商品的功能. 1.  ...

随机推荐

  1. python的标识符

    1.在pyhon中,标识符由字母.数字.下划线组成 2.在python中,所有标识符可以有字幕,下划线开头,但不能以数字开头 3.python的标识符是区分大小写的 4.以下划线开头的标识符是有特殊意 ...

  2. Spine用于Timeline(NullReferenceException: Object reference not set to an instance of an object pine.Unity.Editor.AnimationReferenceAssetEditor.OnInspectorGUI ())

    报错信息:Spine.Unity.Editor.AnimationReferenceAssetEditor.OnInspectorGUI () (at Assets/Extention/Spine/E ...

  3. C++面试笔记(2)

    11 explicit 显式构造函数 explicit修饰的构造函数可用来防止隐式转换 class Test1 { public: Test1(int n) // 普通构造函数 { num=n; } ...

  4. n个骰子的点数之和

    题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为S.输入n,打印出S的所有可能的值出现的概率. 解题思路:动态规划 第一步,确定问题解的表达式.可将f(n, s) 表示n个骰子点数的和为s的排列 ...

  5. 如何优雅的关闭Golang Channel?

    Channel关闭原则 不要在消费端关闭channel,不要在有多个并行的生产者时对channel执行关闭操作. 也就是说应该只在[唯一的或者最后唯一剩下]的生产者协程中关闭channel,来通知消费 ...

  6. linux小计

    一.查看远程主机开放端口命令 nc -zv 10.10.79.89 5151 二.远程登录ssh/scp yum install sshpass sshpass -p youpassword scp ...

  7. ajax如何渲染数据

    染数据的方法 1).字符串拼接,  最常用的方法 优点:只进行一次dom回流 缺点:原有dom的事件都会丢失 原因:就在于innerHTML这个属性,这个属性是返回或设置dom中的内容,以字符串形式返 ...

  8. anaconda3下64位python和32位python共存

    查看当前工作平台:conda info 切换64位和32位: set CONDA_FORCE_32BIT=1是切换到32位 set CONDA_FORCE_32BIT= 是切换到64位 注意=号前后不 ...

  9. 怎么在Mac上安装Tomcat 7[转载]

    本文来自http://wolfpaulus.com/journal/mac/tomcat7,谢谢Wolf Paulus 的分享 Tomcat 7 是Apache发布的第一款可以支持Servlet 3. ...

  10. 阿里云挂载硬盘(windows)

    1.运行:diskmgmt.msc,打开磁盘管理,看到未分配的盘符.点右键,新建简单卷: 2.设置卷大小.根据实际情况可设多设置. 3.分配盘符.格式化: 4.格式化完成: 5.看到了新分区: