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 相关文章推荐
搜索引擎技术核心揭密
Oct 09 PHP
PHPMYADMIN 简明安装教程 推荐
Mar 07 PHP
php array_walk() 数组函数
Jul 12 PHP
php实现rc4加密算法代码
Apr 25 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
May 07 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 PHP
php学习笔记之基础知识
Nov 08 PHP
详解PHP的Yii框架中日志的相关配置及使用
Dec 08 PHP
YII Framework框架教程之缓存用法详解
Mar 14 PHP
laravel5创建service provider和facade的方法详解
Jul 26 PHP
PHP用户验证和标签推荐的简单使用
Oct 31 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
Oct 14 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 gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
2010/05/15 PHP
php入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
php抓取并保存网站图片的实现代码
2015/10/28 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
2018/04/12 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
[01:35]2018完美盛典章节片——共竞
2018/12/17 DOTA
Python实现文件按照日期命名的方法
2015/07/09 Python
python调用摄像头显示图像的实例
2018/08/03 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
树莓派采用socket方式文件传输(python)
2019/06/22 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
2020/06/02 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
美国指甲油品牌:Deco Miami
2017/01/30 全球购物
班组长工作职责
2013/12/25 职场文书
庆元旦迎新年广播稿
2014/02/18 职场文书
机械制造专业毕业生求职信
2014/03/02 职场文书
小学生国旗下演讲稿
2014/04/25 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
班主任经验交流材料
2014/12/16 职场文书
初中班干部工作总结
2015/08/10 职场文书
mysql知识点整理
2021/04/05 MySQL