唐伯虎 发表于 2021-8-20 17:33:59

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 +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==$_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==$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.".html";

   $data.="<li id='{$val}' class='division clearfix'><div class='span-3'><a href='{$url}' target='_blank' title='{$val}'>{$val}</a></div><span >删除</span></li>";

}

echo $data;

}

}

?>

希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://www.cnblogs.com/tdalcn/p/10601278.html

文档来源:http://www.zzvips.com/article/180372.html
页: [1]
查看完整版本: php+ajax实现商品对比功能示例