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 相关文章推荐
Zend引擎的发展 [15]
Oct 09 PHP
将数组写入txt文件 var_export
Apr 21 PHP
PHP教程 变量定义
Oct 23 PHP
PHP extract 将数组拆分成多个变量的函数
Jun 30 PHP
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
Sep 11 PHP
php与java通过socket通信的实现代码
Oct 21 PHP
php读取flash文件高宽帧数背景颜色的方法
Jan 06 PHP
php通过array_merge()函数合并两个数组的方法
Mar 18 PHP
阿里云PHP SMS短信服务验证码发送方法
Jul 11 PHP
PHP获取数组中指定的一列实例
Dec 27 PHP
PHP7基于curl实现的上传图片功能
May 11 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
Apr 10 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
博士208HAF收音机实习报告
2021/03/02 无线电
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
Composer设置忽略版本匹配的方法
2016/04/27 PHP
php验证码生成器
2017/05/24 PHP
EXT窗口Window及对话框MessageBox
2011/01/27 Javascript
推荐30个新鲜出炉的精美 jQuery 效果
2012/03/26 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
javascript级联下拉列表实例代码(自写)
2013/05/10 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
2013/07/16 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
微信小程序picker组件下拉框选择input输入框的实例
2017/09/20 Javascript
详解VSCode配置启动Vue项目
2019/05/14 Javascript
python中的字典详细介绍
2014/09/18 Python
Python压缩和解压缩zip文件
2015/02/14 Python
python&amp;MongoDB爬取图书馆借阅记录
2016/02/05 Python
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
2018/05/26 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
2020/01/28 Python
Python实现井字棋小游戏
2020/03/09 Python
8种常用的Python工具
2020/08/05 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
铭万公司.net面试题笔试题
2014/07/20 面试题
护士自我评价范文
2014/01/25 职场文书
《值日生》教学反思
2014/02/17 职场文书
房屋授权委托书范本
2014/10/07 职场文书
杭白菊导游词
2015/02/10 职场文书