实操:商品列表三级分类的实现方法

对于分类来说,一般包括一级分类,二级分类,三级分类,一般2级分类是比较好做的,大部分网站都是左边点击二级分类,右边显示相对应商品,这就要用到jquery技术了。下面就来为大家详细分析一下该如何实现吧。

  首先把二级分类给全部遍历出来,Html代码如下:
<volist name=‘cate‘ id=‘vo‘>
<li <if condition="$Think.get.name eq $vo[‘name‘]">class="active"</if> onclick="funbrand(‘{$vo.name}‘,‘{$vo.id}‘)" ">
<span style="font-weight: 600;font-size: 13px;height: 45px; display: flex;justify-content: center;align-items: center;padding: 0;border-right: 5px solid white;" data="{$vo.id}" name="cateid" title="">{$vo.name}</span>
</li>
</volist>

根据需求添加点击事件,写jquery:
jquery代码如下:
function funbrand(id,obj){
debugger;
$(obj).addClass(‘active‘);

$(obj).siblings(‘a‘).removeClass(‘active‘);
cateid=$("span[name=‘cateid‘]").attr(‘data‘);

$(‘.all‘).removeClass(‘active‘);
var test=$(‘.all‘).attr(‘title‘);
var goodscateid = id;
 cate_id=$("input[name=‘cateid1‘]").val();
$(‘#id‘).val(goodscateid);
var types = $(‘#type‘).val();
$.ajax({
    url:"{:U(‘Mobile/goods1‘)}",
    data:{goodscateid:goodscateid,types:types,cate_id:cate_id},
    dataType:"json",
    type:"post",
    success:function(data){
        alert(data.v);
        str = ‘‘;
        $(‘.good_list‘).empty();
        if (data.status==1) {

            $.each(data.shops,function(index,obj){

             str+=‘<dl class="clearfix">‘;

             if(test==‘套餐‘){
                 str+=‘<dt class="col-sm-5 col-xs-5"  style="text-align: center;margin-bottom:25px;margin-top:25px">‘;
                 str+=‘<a style="color:#000;width:200px;overflow:hidden;" href="{:U("Mobile/good_detail")}?gid=‘+obj.gid+‘">‘;
                 str+=‘<em><img src="/Public/Admin/kindeditor-4.1.10/attached/image‘+obj.thumb+‘" style="width:80%;margin-top:1rem;" class="img-responsive center-block"></em>‘;
                     str+=‘<dd class="col-sm-7 col-xs-7" style="height:14rem;padding-top: 10px;"><div style="height:50px; overflow:hidden;"><h4 style="height: 30px; line-height: 10px; color:#000; ">‘+obj.gname+‘</h4></div><p style=" font-size:18px;"> .... </p><br/> <p class="money" style="margin-top:0px; margin-bottom:-10px; "><i>¥</i>‘+obj.price+‘</p><br>‘;
             }else{
                 str+=‘<dt class="col-sm-5 col-xs-5"  style="text-align: center;margin-bottom:8px;margin-top:8px">‘;
                 str+=‘<a style="color:#000;width:200px;overflow:hidden;" href="{:U("Mobile/good_detail")}?gid=‘+obj.gid+‘">‘;
                 str+=‘<em><img src="/Public/Admin/kindeditor-4.1.10/attached/image‘+obj.thumb+‘" style="width:80%;margin-top:1rem;" class="img-responsive center-block"></em>‘;
               str+=‘<span>‘+obj.norms+‘/‘+obj.unity+‘</span></a></dt>‘;
                str+=‘<dd class="col-sm-7 col-xs-7" style="height:14rem;padding-top: 10px;"> <h4 style="height: 30px; line-height: 15px; color:#000; ">‘+obj.gname+‘</h4> <p class="money" style="margin-top:30px; margin-bottom:-10px; "><i>¥</i>‘+obj.price+‘</p><br>‘;
            } 

            if (obj.quota!=‘0‘) {
                    str+=‘ <span style="border: 1px solid #c63731; padding:2px; color:#c63731;border-radius: 8px; font-size: 10px;">‘
                    str+=‘限购‘+obj.quota+ obj.unity;
                   str+=‘</span>‘;
                     }
               if (obj.repertor==0) {
                   if(test==‘套餐‘){
                         str+=‘ <em title="‘+obj.gid+‘" class="addcar" att="‘+obj.addnum+‘" style="position:absolute;bottom:-15px;right:0px;">‘;
                        str+=‘<img src="/Public/Mobile/images/add_cart.png" class="img-responsive"  width="30" /></em>‘;

                    }else{
                         str+=‘ <em title="‘+obj.gid+‘" class="addcar" att="‘+obj.addnum+‘" style="position:absolute;bottom:5px;right:0px;">‘;
                         str+=‘<img src="/Public/Mobile/images/add_cart.png" class="img-responsive"  width="30" /></em>‘;
                    }

                      }else{
                         str+=‘<em>补货中</em>‘
                    }
                str+=‘ </dd></dl>‘;
                     })
            $(‘.good_list‘).append(str);
            $(‘.good_list‘).html(str).ready(function(){

                 $(".addcar").click(function(){
                 // debugger;
                var uid = $(‘#uid‘).val();
                var gid = $(this).attr(‘title‘);
                // var cnum = $(this).parent().find("input[class*=num_val]").val();
                // alert(uid);
                var cnum=$(this).attr(‘att‘);
                if (uid==‘‘) {
                    alert(‘请先登陆‘);
                    location="{:U(‘Mobile/login‘)}";
                    return false;
                }

                 $.ajax({
                    url:"{:U(‘Mobile/goods_info‘)}",
                    data:{gid:gid},
                    dataType:"json",
                    type:"post",

                     success:function(data){
                      // alert(data);
                        // alert(data.thumb);
                         // $(".img").src(‘/Public/Admin/kindeditor-4.1.10/attached/image‘+data.thumb);
                        var thumb=data.thumb;
                        var tep=‘/Public/Admin/kindeditor-4.1.10/attached/image‘+thumb;
                          $("#shopping_img").attr(‘src‘, src=tep) ;
                          $(‘.mo_shopping_quota‘).text(data.quota);
                          $(‘.mo_shopping_gid‘).text(data.gid);
                         $(".title").text(data.gname);
                         $(".shopping_gui").text(data.norms+‘/‘+data.unity);
                         $(‘.shopping_money‘).text(data.price);
                         $(‘.shelflife‘).text(data.shelflife);
                         $(‘.mo_shopping_gid‘).text(data.gid);
                        $(‘.mo_shopping_addnum‘).text(data.addnum);
                          $(".mo_shopping").css("display","block");
                          $(‘.num‘).val(data.addnum);
                         }
                     })

                 })

             });
         }
     },
 })

}

Php查询并输出,代码如下:
public function goods1(){
$goodscateid=I(‘goodscateid‘);
$cate_id=I(‘cate_id‘);
$where[‘brandid‘]=array(‘exp‘,"regexp ‘(,|^)" .‘$cate_id‘."(,|$)‘");
// $where[‘bid‘]=$goodscateid;
// $info=M("brandlist")->where("bid=$goodscateid")->find();
$info=M("brandlist")->where($where)->select();
foreach ($info as $key => $value) {
$bname=$value[‘bname‘];
$shops[] = M(‘goodsinfo‘)->where("brandlist=‘$bname‘")->order("gid desc")->find();
}

 foreach ($shops as $key => $value) {
      $pic=explode(",",substr($value[‘thumb‘],1,strlen($value[‘thumb‘])));
      $shops[$key][‘thumb‘]=$pic[0];
}
if ($shops) {
      $returnValue[‘status‘]=1;
      $returnValue[‘shops‘]=$shops;

    }else{
  $returnValue[‘status‘]=2;

    }
$this->ajaxReturn($returnValue);

}

  好了,现在大家已经知道该怎么做了吧,那么如果还存在有疑问的,可以留言咨询,我们可以共同讨论,一起学习进步。

  本文由专业的郑州app开发公司燚轩科技整理发布,原创不易,如需转载请注明原文作者及出处!

原文地址:http://blog.51cto.com/13686158/2155421

时间: 2024-10-08 21:12:22

实操:商品列表三级分类的实现方法的相关文章

Javascript:实操---右键显示列表

JS部分 <script type="text/javascript"> window.onload=function(){ var oUl1=document.getElementById("ul1"); var oLi1=oUl1.children; var bodyWidth=document.documentElement.clientWidth||document.body.clientWidth; var bodyHeight=documen

让ECSHOP商品列表页和商品详细页分类树跟首页一样

如何让商品列表页或商品详情页的分类树都跟首页一样,也是显示全部所有的分类呢?修改方法:1.商品列表页修改方法:打开category.php 文件将$smarty->assign('categories',       get_categories_tree($cat_id));修改为$smarty->assign('categories',       get_categories_tree());2.商品详情页修改方法:将$smarty->assign('categories',   

理论+实操:深入理解Linux文件系统与日志分析

前言: inode(文件节点)与block(数据块) 硬链接与软连接 恢复误删除的文件 (即rm-rf 的操作,可以先进行备份的操作,然后可以进行恢复ext4和xfs文件系统皆可) 日志文件的分类 用户日志与程序日志 一 :inode和block概述 1.1 概述 文件数据包括元信息与实际数据 文件存储在硬盘上,硬盘最小存储单位是"扇区",每个扇区储存512字节 block(块) 连续的八个扇区组成一个block,一个block单位是4k 是文件存取的最小单位 inode(索引节点)

DIV+CSS实操五:经管系网页内容模块内容添加(二)

继续接着DIV+CSS实操系列的博文添加代码:DIV+CSS实操一:经管系网页总体模块布局,DIV+CSS实操二: 经管系网页添加导航栏和友情链接栏,DIV+CSS实操三:经管系网页内容模块添加标题栏和版权信息模块和 DIV+CSS实操四:经管系网页内容模块内容添加(一).我们还是添加内容版块的内容,这一次是中间部分和右半部 分.由于中间的图片无缝滚动需要JS实现,我们后续加上. HTML代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr

DIV+CSS实操三:经管系网页内容模块添加标题栏和版权信息模块

我们继续接着DIV+CSS实操一:经管系网页总体模块布局和DIV+CSS实操二:经管系网页添加导航栏和友情链接 栏这个系列的博文做经管系网页.这一次我们所要做的就是给内容版块添加标题栏,还有就是给制作信息版块添加链 接.这一篇博文基本就是做这些了,记着和前两篇博文比较效果. 还是老套路,写HTML代码时,一定要注意闭合标签,一定要注意代码的整齐承担和完整性,先来HTML代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional

Python实操二

实操一: 1.用map来处理字符串列表啊,把列表中所有人都变成sb,比方alex_sb name=['alex','wupeiqi','yuanhao'] name=['alex','wupeiqi','yuanhao'] m = map(lambda name:name+"_SB",name) print(list(m)) ------------输出结果------------------ ['alex_SB', 'wupeiqi_SB', 'yuanhao_SB'] 2.用map

jquey复选框三级分类关联一二级分类

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Category_Manage_New_Two.aspx.cs" Inherits="Lilaidao.Admin.Weblogin.Category_Manage_New_Two" %> <%@ Register Src="bottom.ascx" TagName=&quo

jquey复选框三级分类关联一二级分类(留着备用)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Category_Manage_New_Two.aspx.cs" Inherits="Lilaidao.Admin.Weblogin.Category_Manage_New_Two" %> <%@ Register Src="bottom.ascx" TagName=&quo

淘宝商品列表以及商品详情数据抓取

前段时间老师让我爬取淘宝的商品列表以及其商品详情数据,期间遇到了很多问题.最困难的就是淘宝的价格数据是以Ajax异步加载的,这些数据暂时还没有能力获取到. 下面介绍一下基本思路. 首先,通过抓取商品列表的商品ID获取商品的身份标识,然后根据商品ID跳转到具体的商品列表,对其他属性进行抓取. 观察两条商品列表的URL: https://s.taobao.com/search?q=帽子&imgfile=&commend=all&ssid=s5-e&search_type=ite