Home  >  Article  >  Backend Development  >  php multi-level classification filtering function

php multi-level classification filtering function

不言
不言Original
2018-06-02 16:31:205029browse

This article mainly introduces the multi-level classification filtering function of PHP, which has certain reference value. Now I share it with everyone. Friends in need can refer to it

php multi-level classification filtering function

Emphasis: I originally wanted to write an ajax filter, but there were some problems with the paging after allocating data, so I wrote a regular one. In fact, this function is not very complicated, it is just a process of checking data, but it still requires some knowledge of the front-end.

First go to the back-end code:
<?php
namespace Home\Controller;use Think\Controller;class IndexController extends Controller {
    public function index(){
        $goods = D(&#39;goods&#39;);        
        if(I(&#39;type&#39;)){            
        $type=I(&#39;type&#39;);            
        $type=explode(&#39;,&#39;,$type,-1);           
         $this->assign(&#39;res1&#39;,$type[0]);// 赋值数据集
            $this->assign(&#39;res2&#39;,$type[1]);// 赋值数据集
            if($type[0] ==&#39;不限&#39;){               
            $type[0]="";
            }            
            if($type[1] ==&#39;不限&#39;){                
            $type[1]="";
            }            
            $data[&#39;color&#39;]=array(&#39;like&#39;, "%$type[0]%");            
            $data[&#39;size&#39;]=array(&#39;like&#39;, "%$type[1]%");
        }        //分页
        $count = $goods->where($data)->count();// 查询满足要求的总记录数
        $Page = new \Think\Page($count,2);// 实例化分页类 传入总记录数和每页显示的记录数(25)
        $Page->setConfig(&#39;prev&#39;,&#39;上一页&#39;);        
        $Page->setConfig(&#39;next&#39;,&#39;下一页&#39;);        
        $show = $Page->show();// 分页显示输出
        $list = $goods->order(&#39;id asc&#39;)->where($data)->limit($Page->firstRow.&#39;,&#39;.$Page->listRows)->select();        
        $this->assign(&#39;list&#39;,$list);// 赋值数据集
        $this->assign(&#39;page&#39;,$show);// 赋值分页输出
        $this->display();
    }

}
Front-end code:
<!doctype html><html lang="en"><head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
    <link href="https://cdn.bootcss.com/amazeui/2.7.2/css/amazeui.css" rel="stylesheet">
    <style>
        .color span{            margin-left: 10px;            margin-bottom: 10px;        }
        .size span{            margin-left: 10px;        }
        .content p{            padding: 5px 10px;            border: 1px solid #9B410E;            margin-top: 10px;            background-color: #fff;        }
    </style></head><body>
    <p class="box" style="background-color:#cccccc63;width: 1200px;margin: 0 auto;">
        <p class="color" style="display: flex;">
            <span class="am-btn am-btn-danger">不限</span>
            <span class="am-btn am-btn-primary">红色</span>
            <span class="am-btn am-btn-primary">黄色</span>
            <span class="am-btn am-btn-primary">蓝色</span>
            <span class="am-btn am-btn-primary">绿色</span>
        </p>
        <p class="size" style="display: flex;">
            <span class="am-btn am-btn-danger">不限</span>
            <span class="am-btn am-btn-primary">大号</span>
            <span class="am-btn am-btn-primary">中号</span>
            <span class="am-btn am-btn-primary">小号</span>
        </p>

        <p class="content">
            <volist name="list" id="vo">
                <p>{$vo.title}</p>
            </volist>
        </p>

        <form action="__MODULE__/Index/index" method="get" class="sub">
            <input type="hidden" name="type" class="type"/>
        </form>
        <input type="hidden" name="res1" class="res1" value="{$res1}"/>
        <input type="hidden" name="res2" class="res2" value="{$res2}"/>
    </p>
    <p class="page" style="text-align: center">{$page}</p></body></html><script>
    $(document).ready(function(){
        $(".color span").each(function(){
            if ($(".res1").val() == $(this).text()) {
                $(this).addClass("am-btn-danger");
                $(this).removeClass("am-btn-primary");
                $(this).siblings().removeClass("am-btn-danger");
                $(this).siblings().addClass("am-btn-primary")
            }
        });
        $(".size span").each(function(){
            if ($(".res2").val() == $(this).text()) {
                $(this).addClass("am-btn-danger");
                $(this).removeClass("am-btn-primary");
                $(this).siblings().removeClass("am-btn-danger");
                $(this).siblings().addClass("am-btn-primary")
            }
        });
    });

    $(".color span").click(function () {
        $(this).removeClass("am-btn-primary");
        $(this).addClass("am-btn-danger");
        $(this).siblings().removeClass("am-btn-danger")
        $(this).siblings().addClass("am-btn-primary")
    })

    $(".size span").click(function () {
        $(this).removeClass("am-btn-primary");
        $(this).addClass("am-btn-danger");
        $(this).siblings().removeClass("am-btn-danger")
        $(this).siblings().addClass("am-btn-primary")
    })

    $("span").click(function () {
        var type = &#39;&#39;
        $("span").each(function(){
            if (($(this).attr("class").toString()) == "am-btn am-btn-danger") {
                type += $(this).text()+&#39;,&#39;;
            }
        });
        $(".type").val(type);
        $(".sub").submit();
    })</script>

Note: The front section is transmitted through a hidden form, and special attention should be paid to submitting it through get.

Related recommendations:

php multi-level classification query

php multi-level tree menu code

The above is the detailed content of php multi-level classification filtering function. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn