php商品对比功能代码分享

时间:2022-09-24 22:34:10

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

php商品对比功能代码分享

商品对比调用的JS文件(包含了商品对比框浮动JS):

  1. /*浮动窗口*/ 
  2. (function(){   
  3.   var n=10; 
  4.   var obj=document.getElementById("goods-compare"); 
  5.   if(!obj){ 
  6.     return false
  7.   } 
  8.   var x=0; 
  9.   window.onscroll=function(){ 
  10.     obj.style.top=(document.body.scrollTop||document.documentElement.scrollTop)+n+'px'
  11.   }; 
  12.   window.onresize=function(){ 
  13.     obj.style.top=(document.body.scrollTop||document.documentElement.scrollTop)+n+'px'
  14.   };   
  15. })(); 
  16.   
  17. //添加显示对比框 
  18. function addcompare(chk){ 
  19.   $('#goods-compare').fadeIn().show(); 
  20.   var count=$(".compare-box li").length; 
  21.   if (count>2)//这里可以修改对比的数据哦 
  22.   { 
  23.     alert('产品比较最多选3种哦'); 
  24.     return
  25.   } 
  26.   
  27.   $.ajax({ 
  28.     type: 'post'
  29.     url: 'ajax.php'
  30.     data: { 
  31.       'action':'1'
  32.       'gid':chk.gid,//商品ID 
  33.       'gname':chk.gname,//商品名称 
  34.       'gtype':chk.gtype//商品类别,类别不同时不能比较 
  35.     }, 
  36.     cache: false
  37.     async: false
  38.     success: function(result) { 
  39.       if(result!=''
  40.       { 
  41.         alert(result); 
  42.       }else
  43.         var url='http://www.lusen.com/product-'+chk.gid+'.html';//设置商品的链接地址 
  44.         $(".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>"
  45.         $("#comids").val($(".compare-box li").map(function(){//将对比的所有商品ID,赋值给#comids 
  46.           return $(this).attr('id'); 
  47.         }).get().join(",")); 
  48.       } 
  49.     } 
  50.   }); 
  51.   
  52. //删除对比产品 
  53. function removecompare(id) 
  54.   $.ajax({ 
  55.     type: 'post'
  56.     url: 'ajax.php'
  57.     data: { 
  58.       'action':'2'
  59.       'gid':id 
  60.     }, 
  61.     cache: false
  62.     success: function(result) { 
  63.       $("#"+id).remove(); 
  64.       $("#comids").val($(".compare-box li").map(function(){ 
  65.         return $(this).attr('id'); 
  66.       }).get().join(",")); 
  67.     } 
  68.   }); 
  69.    
  70. //清空对比产品 
  71. function clearcompare() 
  72. {   
  73.   $.ajax({ 
  74.     type: 'post'
  75.     url: 'ajax.php'
  76.     data: { 
  77.       'action':'3' 
  78.     }, 
  79.     cache: false
  80.     success: function(result) { 
  81.       $(".compare-box").html(''); 
  82.       $("#comids").val(''); 
  83.     } 
  84.   }); 
  85. //显示对比框 
  86. function showcompare() 
  87.   $.ajax({ 
  88.     type: 'post'
  89.     url: 'ajax.php'
  90.     data: { 
  91.       'action':'4' 
  92.     }, 
  93.     success: function(result) { 
  94.       if(result){ 
  95.         $(".compare-box").append(result); 
  96.         $("#comids").val($(".compare-box li").map(function(){ 
  97.           return $(this).attr('id'); 
  98.         }).get().join(",")); 
  99.         $('#goods-compare').fadeIn().show(); 
  100.       } 
  101.     } 
  102.   }); 
  103.    
  104.   
  105. //点击关闭对比框 
  106. $('.close-gc').click(function(){ 
  107.   $('#goods-compare').fadeOut().hide(); 
  108. }); 

商品对比调用Ajax文件

  1. <?php 
  2. function mb_unserialize($serial_str) { 
  3.   $serial_str =stripslashes($serial_str); 
  4.   return unserialize($serial_str); 
  5. if($_POST['action']=='1') {//add 
  6.   if(isset($_COOKIE['gtype'])) { 
  7.     if($_COOKIE['gtype']!=$_POST['gtype']) { 
  8.       echo '对不起,您选择的是不同类别的产品无法加入对比,请选择同类产品或清空当前对比栏再选择。'
  9.       return
  10.     } 
  11.   }else { 
  12.     setcookie('gtype',$_POST['gtype']); 
  13.   } 
  14.   if(isset($_COOKIE['gid'])) { 
  15.     $arr_str = $_COOKIE['gid']; 
  16.     $arr=mb_unserialize($arr_str); 
  17.     if(count($arr)>2) {//商品比较数量 
  18.       echo "商品比较最多选3种"
  19.       return
  20.     } 
  21.     foreach($arr as $val) { 
  22.       if($val[0]==$_POST['gid']) { 
  23.         echo "该商品已经加入对比框"
  24.         return
  25.       } 
  26.     } 
  27.     $info=array($_POST['gid'],$_POST['gname'],$_POST['gtype']); 
  28.     $arr[]=$info; 
  29.     $arr_str=serialize($arr); 
  30.     setcookie('gid',$arr_str); 
  31.   }else { 
  32.     $info=array($_POST['gid'],$_POST['gname'],$_POST['gtype']); 
  33.     $arr[]=$info; 
  34.     $arr_str=serialize($arr); 
  35.     setcookie('gid',$arr_str); 
  36.   } 
  37. }else if($_POST['action']=='2') {//delone 
  38.   $id=$_POST['gid']; 
  39.   $arr_str = $_COOKIE['gid']; 
  40.   $arr=mb_unserialize($arr_str);   
  41.   foreach($arr as $key=>$val) { 
  42.     if($val[0]==$id) { 
  43.       unset ($arr[$key]); 
  44.     } 
  45.   } 
  46.   $arr_str=serialize($arr);   
  47.   setcookie('gid',$arr_str); 
  48. }else if($_POST['action']=='3') {//delall 
  49.   setcookie('gid',''); 
  50.   setcookie('gtype',''); 
  51. }else if($_POST['action']=='4') {//showlist 
  52.   if(isset($_COOKIE['gid'])) { 
  53.     $data=''
  54.     $arr_str = $_COOKIE['gid']; 
  55.     $arr=mb_unserialize($arr_str);  
  56.     foreach ($arr as $val){      
  57.       $url="http://www.lusen.com/product-".$val[0].".html"
  58.       $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>"
  59.     } 
  60.     echo $data; 
  61.   }   
  62. ?> 

 

以上就是商品对比功能实现代码,希望大家可以仔细研究,有好的想法大家一起探讨。