php商品对比功能代码分享


Posted in PHP onSeptember 24, 2015

下面是自己亲自动手编写的代码,和大家一起学习研究。

php商品对比功能代码分享

商品对比调用的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 相关文章推荐
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
php 删除cookie方法详解
Dec 01 PHP
php获取图片信息的方法详解
Dec 10 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
Mar 28 PHP
PHP生成及获取JSON文件的方法
Aug 23 PHP
PHP实现的网站目录扫描索引工具
Sep 08 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
Dec 15 PHP
关于Laravel Route重定向的一个注意点
Jan 16 PHP
PHP实现浏览器中直接输出图片的方法示例
Mar 14 PHP
PHP如何搭建百度Ueditor富文本编辑器
Sep 21 PHP
PHP hex2bin()函数用法讲解
Feb 25 PHP
php使用curl伪造浏览器访问操作示例
Sep 30 PHP
php实现简易聊天室应用代码
Sep 23 #PHP
利用PHP如何实现Socket服务器
Sep 23 #PHP
10个超级有用的PHP代码片段果断收藏
Sep 23 #PHP
Discuz!X中SESSION机制实例详解
Sep 23 #PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
Sep 23 #PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
Sep 23 #PHP
php实现简单的MVC框架实例
Sep 23 #PHP
You might like
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
浅谈php自定义错误日志
2015/02/13 PHP
thinkphp框架实现数据添加和显示功能
2016/06/29 PHP
jquery validator 插件增加日期比较方法
2010/02/21 Javascript
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
js实现按Ctrl+Enter发送效果
2014/09/18 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
基于jQuery仿淘宝产品图片放大镜特效
2020/10/19 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
Bootstrap table分页问题汇总
2016/05/30 Javascript
微信小程序request出现400的问题解决办法
2017/05/23 Javascript
laravel-admin 与 vue 结合使用实例代码详解
2019/06/04 Javascript
小程序click-scroll组件设计
2019/06/18 Javascript
python threading模块操作多线程介绍
2015/04/08 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
PyQt4实现下拉菜单可供选择并打印出来
2018/04/20 Python
Django之无名分组和有名分组的实现
2019/04/16 Python
Python openpyxl 插入折线图实例
2020/04/17 Python
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
JD Sports瑞典:英国领先的运动时尚商店
2018/01/28 全球购物
班组长的岗位职责
2013/12/09 职场文书
会计职业生涯规划范文
2014/01/04 职场文书
拓展培训心得体会
2014/01/04 职场文书
护理专科自荐书范文
2014/02/18 职场文书
人事科岗位职责范本
2014/03/02 职场文书
董事长秘书岗位职责
2015/02/13 职场文书
2015年感恩节活动总结
2015/03/24 职场文书
2015年煤矿工作总结
2015/04/28 职场文书
超市员工管理制度
2015/08/06 职场文书
体育委员竞选稿
2015/11/21 职场文书
浅谈redis缓存在项目中的使用
2021/05/20 Redis
Nginx的gzip相关介绍
2022/05/11 Servers
Python 文字识别
2022/05/11 Python