php 多級分類篩選功能

來源:互聯網
上載者:User

這篇文章主要介紹了關於php 多級分類篩選功能,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

強調:本來是想寫一個ajax的篩選了,分配資料之後的分頁確出了一些問題,所以就寫了一個常規的。其實這個功能並不是很複雜,就是一個查資料的過程,但是還是有一些考驗前端的知識掌握。

先上後台代碼:
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller {    public function index(){        $goods = D('goods');                if(I('type')){                    $type=I('type');                    $type=explode(',',$type,-1);                    $this->assign('res1',$type[0]);// 賦值資料集            $this->assign('res2',$type[1]);// 賦值資料集            if($type[0] =='不限'){                           $type[0]="";            }                        if($type[1] =='不限'){                            $type[1]="";            }                        $data['color']=array('like', "%$type[0]%");                        $data['size']=array('like', "%$type[1]%");        }        //分頁        $count = $goods->where($data)->count();// 查詢滿足要求的總記錄數        $Page = new \Think\Page($count,2);// 執行個體化分頁類 傳入總記錄數和每頁顯示的記錄數(25)        $Page->setConfig('prev','上一頁');                $Page->setConfig('next','下一頁');                $show = $Page->show();// 分頁顯示輸出        $list = $goods->order('id asc')->where($data)->limit($Page->firstRow.','.$Page->listRows)->select();                $this->assign('list',$list);// 賦值資料集        $this->assign('page',$show);// 賦值分頁輸出        $this->display();    }}
前端代碼:
<!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 = ''        $("span").each(function(){            if (($(this).attr("class").toString()) == "am-btn am-btn-danger") {                type += $(this).text()+',';            }        });        $(".type").val(type);        $(".sub").submit();    })</script>

注意:前段是通過隱藏的表單去傳至,尤為要注意的是要通過get提交。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.