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 相关文章推荐
linux命令之调试工具strace的深入分析
Jun 03 PHP
php对csv文件的读取,写入,输出下载操作详解
Aug 10 PHP
dedecms中使用php语句指南
Nov 13 PHP
php使用pdo连接sqlite3的配置示例
May 27 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 PHP
php格式化时间戳
Dec 17 PHP
PHP编程 SSO详细介绍及简单实例
Jan 13 PHP
PHP实现的简单组词算法示例
Apr 10 PHP
PHP压缩图片功能的介绍
Mar 21 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
Mar 22 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
Oct 21 PHP
php去除deprecated的实例方法
Nov 17 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 header()函数语法及使用代码
2013/11/04 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
2015/01/04 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
List the Codec Files on a Computer
2007/06/11 Javascript
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
2012/07/31 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
jquery实现不包含当前项的选择器实例
2015/06/25 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
微信小程序  自定义创建详细介绍
2016/10/27 Javascript
实现隔行换色效果的两种方式【实用】
2016/11/27 Javascript
AngularJs上传前预览图片的实例代码
2017/01/20 Javascript
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
Javascript 对象(object)合并操作实例分析
2019/07/30 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
js+html+css实现手动轮播和自动轮播
2020/12/30 Javascript
python进程管理工具supervisor使用实例
2014/09/17 Python
利用Python学习RabbitMQ消息队列
2015/11/30 Python
Python操作csv文件实例详解
2017/07/31 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
Python图像处理PIL各模块详细介绍(推荐)
2019/07/17 Python
Python 合并多个TXT文件并统计词频的实现
2019/08/23 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
2020/05/19 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
2020/11/01 Python
若干个Java基础面试题
2015/05/19 面试题
副厂长岗位职责
2014/02/02 职场文书
营销总监岗位职责
2014/09/16 职场文书
2014年客服工作总结范文
2014/11/13 职场文书
人民币使用说明书
2019/04/17 职场文书
优化Mysql查询的示例
2022/04/26 MySQL