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;
  }
}
?> 

以上就是商品对比功能实现代码,希望大家可以仔细研究,有好的想法大家一起探讨。

(0)

相关推荐

  • php版淘宝网查询商品接口代码示例

    本文来给大家介绍一个php版淘宝网查询商品接口代码的例子,下面要改成你的信息的在代码后面都有说明了,同时sdk包我们也要官方下载. 下载SDK后直接引用包,并创建如下的类,并运行之,即完成了调用接口(taobao.user.seller.get)的过程(调用接口说明可见下载的SDK)说明:    TopClient为调用SDK的实例化类    UserSellerGetRequest为API的请求参数封装类 注:该接口是在沙箱环境下调用,获取的数据,也是沙箱中数据.若要获取线上环境,请填写自己创

  • 利用Python的Flask框架来构建一个简单的数字商品支付解决方案

    作为一个程序员,我有时候忘了自己所具有的能力.当事情没有按照你想要的方式发展时,却很容易忘记你有能力去改变它.昨天,我意识到,我已经对我所出售的书的付款处理方式感到忍无可忍了.我的书完成后,我使用了三个不同的数字商品支付处理器,在对它们三个都感到不满后,我用Python和Flask,两个小时的时间写出了我自己的解决方案.没错!两个小时!现在,这个系统支撑着我的书籍付费流程,整个过程难以置信的简单,你可以在20秒内购买书籍并开始阅读. 往下看,看我是如何在一夜之间完成我自己的数字商品支付解决方案的

  • PHP实现采集抓取淘宝网单个商品信息

    调用淘宝的数据可以使用淘宝提供的api,如果只需调用淘宝商品图片名称等公开信息在自己网站上,使用php中的 file_get_contents 函数实现即可. 思路: file_get_contents(url) 该函数根据 url 如 http://www.baidu.com 将该网页内容(源码)以字符串形式输出(一个整字符串),然后配合preg_match,preg_replace等这些正则表达式操作就可以实现获取该url特定div,img等信息了.当然前题是淘宝在单个商品页面的结构是固定的

  • python抓取京东价格分析京东商品价格走势

    复制代码 代码如下: from creepy import Crawlerfrom BeautifulSoup import BeautifulSoupimport urllib2import json class MyCrawler(Crawler):    def process_document(self, doc):        if doc.status == 200:            print '[%d] %s' % (doc.status, doc.url)       

  • 类似天猫商品详情随浏览器移动的示例代码

    使用该函数,必须集成于jquery包 原理:当浏览器移动到某个指定位置时,该图层上浮,然后加入一个样式,让该div层定位于浏览器顶部 复制代码 代码如下: //控制头部购物车的显示 function fixshow(min_height){ min_height ? min_height = min_height : min_height = 830; $(window).scroll(function(){ var s = $(window).scrollTop(); if( s > min_

  • jquery实现商品拖动选择效果代码(自写)

    效果图如下:  主页面index.html: 复制代码 代码如下: <!doctype html> <html lang="en"> <head> <meta charset="utf-8"/> <title>Drag and drop</title> <link rel="stylesheet" href="main.css"> <sc

  • php实现的简单美国商品税计算函数

    本文实例讲述了php实现的简单美国商品税计算函数.分享给大家供大家参考.具体如下: <?php function tax($total,$tax_amount){ $tax_rate = $tax_amount * .01; $tax = $total * $tax_rate; return $value = $tax + $total; } $price = 50.00; //In U.S. Dollars $taxrate = 6.5; //In percentage echo "$&

  • jQuery 浮动导航菜单适合购物商品类型的网站

    单页面网页内容较多,页面长度较大,需要方便快速的在页面的不同位置进行定位,所以浮动菜单逐渐流行了起来,如下图 男装.女装.美妆等. 这种菜单功能分为两部分: 1.点击菜单项,网页滚动到对应位置,可简单通过锚点实现: 2.滚动页面的时候,菜单项的选中状态要跟着改变,这就需要监听网页的滚动事件并通过一点计算来实现了: 计算 scrollTop 和 各个 div 的 offsetTop 的大小关系,判断现在网页显示的位置在什么地方,再根据计算的结果给对应的菜单项添加样式.比如第二个 div 的 off

  • python模拟登陆阿里妈妈生成商品推广链接

    淘宝官方有获取商品推广链接的API,但该API属于增值API 普通开发者没有调用权限 需要申请开通 备注:登陆采用的是阿里妈妈账号登陆非淘宝账号登陆 复制代码 代码如下: #coding:utf-8__author__ = 'liukoo'import urllib,urllib2,cookielib,refrom hashlib import md5class alimama:    def __init__(self):        self.header = {'User-Agent':

  • javascript实现点击商品列表checkbox实时统计金额的方法

    本文实例讲述了javascript实现点击商品列表checkbox实时统计金额的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999

  • python根据京东商品url获取产品价格

    京东商品详细的请求处理,是先显示html,然后再ajax请求处理显示价格. 1.可以运行js,并解析之后得到的html 2.模拟js请求,得到价格 # -*- coding: utf-8 -*- """ 根据京东url地址,获取商品价格 京东请求处理过程,先显示html页面,然后通过ajax get请求获取相应的商品价格 1.商品的具体数据在html中的格式,如下(示例) # product: { # skuid: 1310118868, # name: '\u9999\u5

  • JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)

    购物车点击可以减少或者添加商品并自动计算价格: 购物车中可能有这样的功能,那就是点击按钮可以实现商品数量的减少或者增加,并且能够实时的计算出总的商品价格,下面就通过代码实例介绍一下如何实现此功能,当然下面的这个模拟实现的购物车难登大雅之堂,但是可以从中得到一些启发或者相关的知识点,代码如下: 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title&

随机推荐