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;
}
}
?>
以上就是商品对比功能实现代码,希望大家可以仔细研究,有好的想法大家一起探讨 。 |