php教程

超轻量级php框架startmvc

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

更新时间:2020-04-04 10:51:52 作者:startmvc
本文实例讲述了php+ajax实现商品对比功能。分享给大家供大家参考,具体如下:商品对比调

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

商品对比调用的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 ajax 商品对比