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动态创建Flash动画
Oct 09 PHP
最新的php 文件上传模型,支持多文件上传
Aug 13 PHP
PHP获取url的函数代码
Aug 02 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
Aug 31 PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 PHP
thinkphp3查询mssql数据库乱码解决方法分享
Feb 11 PHP
PHP函数eval()介绍和使用示例
Aug 20 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
详解thinkphp中的volist标签
Jan 15 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
Jul 24 PHP
PHP中Session ID的实现原理实例分析
Aug 17 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
Oct 23 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服务端图片生成缩略图的方法详解
2013/06/20 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
js函数般调用正则
2008/04/08 Javascript
jQuery 使用手册(七)
2009/09/23 Javascript
JavaScript 编写匿名函数的几种方法
2010/02/21 Javascript
用JQuery调用Session的实现代码
2010/10/29 Javascript
JavaScript设置首页和收藏页面的小例子
2013/11/11 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
JavaScript中跨域调用Flash的方法
2014/08/11 Javascript
SeaJS 与 RequireJS 的差异对比
2014/12/08 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
React中的refs的使用教程
2018/02/13 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
vue自定义全局共用函数详解
2018/09/18 Javascript
JS对象和字符串之间互换操作实例分析
2019/02/02 Javascript
js编写简易的计算器
2020/07/29 Javascript
[56:01]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 Effect vs EG
2018/03/31 DOTA
Python open()文件处理使用介绍
2014/11/30 Python
Python中decorator使用实例
2015/04/14 Python
python daemon守护进程实现
2016/08/27 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
浅谈Python中重载isinstance继承关系的问题
2018/05/04 Python
浅谈Pandas 排序之后索引的问题
2018/06/07 Python
python代码编写计算器小程序
2020/03/30 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
Python中的面向接口编程示例详解
2021/01/17 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
飞利信loadrunner和软件测试笔试题
2012/09/22 面试题
优秀党员主要事迹
2014/01/19 职场文书
2014年班级工作总结范文
2014/12/23 职场文书
医生个人年终总结
2015/02/28 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书