就是筛选时候 如果这个分类或者属性下没有商品就不显示这个筛选属性。
比如说 女装下的有红色、蓝色、黄色两个属性,但是女装下没有颜色属性是黄色的衣服,这样在页面上筛选项就不显示黄色,只列出红色和蓝色搜索淘宝筛选

解决方案 »

  1.   

    筛选都是通过url的请求进行操作的,发送一个get请求,然后从数据库获取相关的商品。
      

  2.   

    一般两种方案,一是先从数据库读出可能的属性值,再列举;二是全部列举,点击再搜索数据库显示,如搜索不到黄色就返回找不到
    前者客户体验虽然较好,但不论客户是否点击都进行了一次数据库IO(多数仅为数量统计);
    大站一般用后者,因为每个客户打开页面就进行一次数据库IO是消耗很大的,因为即使搜索不到一般客户不会太在意,除非10个属性有半数都是搜索不到客户才会有反感情绪另一种做法是在属性表每个属性都实时记录对应的数量(或bool值),每次打开页面就一起获取,记入js,根据选择范围ajax改变版面,这个相对复杂一些,数据结构可能也要改
      

  3.   

    能说的再详细一些吗  不是很明白具体流程
    说白了就是各种可能样式都包含进去,比如颜色black,颜色red,尺寸m,尺寸l,你的数据格式就需要这样,array('0'=>array('sku'=>array(color=>black,size=>'m'),'price'=>'200','stock'=>'200'),'1'=>array('sku'=>array(color=>red,size=>'m'),'price'=>'200','stock'=>'200'),'2'=>array('sku'=>array(color=>red,size=>'l'),'price'=>'200','stock'=>'200'),'3'=>array('sku'=>array(color=>block,size=>'l'),'price'=>'200','stock'=>'200')) 就是这样的,然后根据用户点击,你再js进行样式变化
      

  4.   

    你是想不显示没有结果的选项吧?我的做法是用cron 定时给每个选项统计商品数量。然后显示的时候只显示有数量的选项。但如果只靠这些的话,有些商品刚上传之后,得等到重新统计之后才能被筛选出来,所以弊端比较明显。
    因此我加了一个上传商品,修改,删除商品的时候强行更新涉及到的选项的商品数量。
      

  5.   

    能说的再详细一些吗  不是很明白具体流程
    说白了就是各种可能样式都包含进去,比如颜色black,颜色red,尺寸m,尺寸l,你的数据格式就需要这样,array('0'=>array('sku'=>array(color=>black,size=>'m'),'price'=>'200','stock'=>'200'),'1'=>array('sku'=>array(color=>red,size=>'m'),'price'=>'200','stock'=>'200'),'2'=>array('sku'=>array(color=>red,size=>'l'),'price'=>'200','stock'=>'200'),'3'=>array('sku'=>array(color=>block,size=>'l'),'price'=>'200','stock'=>'200')) 就是这样的,然后根据用户点击,你再js进行样式变化这样的话每次打开页面都需要把所有的商品属性查出来,这个数组数据量会很大啊
      

  6.   

    这个我们之前做过类似的 我们是在页面上 每一种条件 写一个 hidden 来存储所选的值  查询的时候从这些hidden中把值取出来 通过url传参到后台查询 查询完毕 还要把条件都带回来 再赋值给这些hidden 思路如此 细节还有很多 楼主加油
      

  7.   

    根据关联条件,sql组合查询。
      

  8.   

    lz 可以研究一下 ecshop  有相关的功能