服务器之家

服务器之家 > 正文

php+ajax实现商品对比功能示例

时间:2021-08-01 14:56     来源/作者:陈达辉

本文实例讲述了php+ajax实现商品对比功能。分享给大家供大家参考,具体如下:

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

商品对比调用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. ?> 

希望本文所述对大家PHP程序设计有所帮助。

原文链接:https://www.cnblogs.com/tdalcn/p/10601278.html

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部