php商品對比功能代碼分享
下面是自己親自動手編寫的代碼,和大家一起學習研究。

商品對比調(diào)用的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)//這里可以修改對比的數(shù)據(jù)哦
{
alert('產(chǎn)品比較最多選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';//設(shè)置商品的鏈接地址
$(".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(","));
}
}
});
}
//刪除對比產(chǎn)品
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(","));
}
});
}
//清空對比產(chǎn)品
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();
}
}
});
}
//點擊關(guān)閉對比框
$('.close-gc').click(function(){
$('#goods-compare').fadeOut().hide();
});
商品對比調(diào)用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 '對不起,您選擇的是不同類別的產(chǎn)品無法加入對比,請選擇同類產(chǎn)品或清空當前對比欄再選擇。';
return;
}
}else {
setcookie('gtype',$_POST['gtype']);
}
if(isset($_COOKIE['gid'])) {
$arr_str = $_COOKIE['gid'];
$arr=mb_unserialize($arr_str);
if(count($arr)>2) {//商品比較數(shù)量
echo "商品比較最多選3種";
return;
}
foreach($arr as $val) {
if($val[0]==$_POST['gid']) {
echo "該商品已經(jīng)加入對比框";
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;
}
}
?>
以上就是商品對比功能實現(xiàn)代碼,希望大家可以仔細研究,有好的想法大家一起探討。
- jquery實現(xiàn)商品拖動選擇效果代碼(自寫)
- python抓取京東價格分析京東商品價格走勢
- 類似天貓商品詳情隨瀏覽器移動的示例代碼
- python模擬登陸阿里媽媽生成商品推廣鏈接
- php版淘寶網(wǎng)查詢商品接口代碼示例
- jQuery 浮動導航菜單適合購物商品類型的網(wǎng)站
- PHP實現(xiàn)采集抓取淘寶網(wǎng)單個商品信息
- JQuery實現(xiàn)的購物車功能(可以減少或者添加商品并自動計算價格)
- 利用Python的Flask框架來構(gòu)建一個簡單的數(shù)字商品支付解決方案
- javascript實現(xiàn)點擊商品列表checkbox實時統(tǒng)計金額的方法
- php實現(xiàn)的簡單美國商品稅計算函數(shù)
- python根據(jù)京東商品url獲取產(chǎn)品價格
相關(guān)文章
php數(shù)組函數(shù)序列之a(chǎn)rray_unshift() 在數(shù)組開頭插入一個或多個元素
array_unshift() 函數(shù)在數(shù)組開頭插入一個或多個元素。被加上的元素作為一個整體添加,這些元素在數(shù)組中的順序和在參數(shù)中的順序一樣2011-11-11
PHP和Selenium搭建高效網(wǎng)絡(luò)爬蟲實現(xiàn)技術(shù)探索
隨著信息時代的到來,網(wǎng)站被認為是獲取信息的主要途徑之一,但是,手動獲取網(wǎng)站上的信息是非常繁瑣的,因此出現(xiàn)了自動抓取網(wǎng)頁的方式——網(wǎng)絡(luò)爬蟲,這篇文章將介紹如何使用PHP和Selenium搭建一個高效的網(wǎng)絡(luò)爬蟲來自動收集信息2024-01-01
php使用redis的有序集合zset實現(xiàn)延遲隊列應用示例
這篇文章主要介紹了php使用redis的有序集合zset實現(xiàn)延遲隊列,結(jié)合具體實例形式分析了PHP基于redis的有序集合zset實現(xiàn)延遲隊列的具體原理、應用場景及相關(guān)操作技巧,需要的朋友可以參考下2020-02-02
PHP和JAVA中的重載(overload)和覆蓋(override) 介紹
PHP不支持方法和操作符重載。JAVA不支持操作符的重載(但是“+”實際上是一種操作符重載)2012-03-03
PHP連接sql server 2005環(huán)境配置及問題解決
這篇文章主要介紹了PHP連接sql server 2005環(huán)境配置及問題解決,需要的朋友可以參考下2014-08-08
PHP中使用foreach()遍歷二維數(shù)組的簡單實例
下面小編就為大家?guī)硪黄狿HP中使用foreach()遍歷二維數(shù)組的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06

