头几天做项目时,遇到个需求,商品多级分类挑选功用。之前从没做过,查了不少材料,总算完成了。虽然完成的不够文雅,但最少能有结果,内心照样很愉快的。菜鸟有一颗成为大神的心。在这里分享给列位童鞋,迎接大佬指点一下。
先说下道理:php完成多级挑选主假如运用a链接get传参,把每一个标签包括的参数经由过程a链接传到背景掌握器,掌握器吸收参数后接着再把值赋回给模板,而且依据参数查询对应数据输出给前台。完成起来也不难,讲到这里,觉得刚开始本身完整没有思绪的模样真是该打,哈哈...
下面是前台代码示例:
<body>
<div> <span>范例:</span> <!-- 0~4代表ID值 --> <a href="{:url('地点', ['category' => 0, 'mode' => $a, 'price'=>$c])}">悉数</a> <a href="{:url('地点', ['category' => 1, 'mode' => $a, 'price'=>$c])}">官方消息</a> <a href="{:url('地点', ['category' => 2, 'mode' => $a, 'price'=>$c])}">挪动运用</a> <a href="{:url('地点', ['category' => 3, 'mode' => $a, 'price'=>$c])}">微信民众号</a> <a href="{:url('地点', ['category' => 4, 'mode' => $a, 'price'=>$c])}">Android开辟</a> <span>形式: <a href="{:url('地点', ['category' => $b, 'mode' => '0', 'price'=>$c])}">悉数</a> <a href="{:url('地点', ['category' => $b, 'mode' => '1', 'price'=>$c])}">形式1</a> <a href="{:url('地点', ['category' => $b, 'mode' => '2', 'price'=>$c])}">形式2</a> <a href="{:url('地点', ['category' => $b, 'mode' => '3', 'price'=>$c])}">形式3</a> <a href="{:url('地点', ['category' => $b, 'mode' => '4', 'price'=>$c])}">形式4</a> <a href="{:url('地点', ['category' => $b, 'mode' => '5', 'price'=>$c])}">形式5</a> <a href="{:url('地点', ['category' => $b, 'mode' => '6', 'price'=>$c])}">形式6</a> <span>预算价钱: <a href="{:url('地点', ['category' => $b, 'mode' => $a, 'price'=>'0'])}">悉数</a> <a href="{:url('地点', ['category' => $b, 'mode' => $a, 'price'=>'1'])}">600以下</a> <a href="{:url('地点', ['category' => $b, 'mode' => $a, 'price'=>'600'])}">600-1000</a> <a href="{:url('地点', ['category' => $b, 'mode' => $a, 'price'=>'1000'])}">1000-5000</a> <a href="{:url('地点', ['category' => $b, 'mode' => $a, 'price'=>'5000'])}">5000以上</a> </div>
<!-- 掌握把猎取过来的参数再赋值给模板 -->
</body>
这段代码人人一定都能看懂,我再烦琐一下,比方当用户第一下点击范例内里的悉数的时刻,便会把category字段为0传到背景。背景吸收推断并把值再赋回给前台,假如category字段值为0,则查询悉数的分类数据。假如用户第二下点击形式内里的悉数,那此时由于category的值是由背景赋值过来的所认为0,mode为0。假如第三下点击价钱里的悉数,则三个标签值悉数为0。此时背景推断前提,假如悉数为0,则悉数查询,模板遍历显现。闻一知十,其他标签也是一样。现实操作中,一定不会把值一个一个写在标签里这么傻,只要用volist遍历出来取值就能够了。人人都晓得哈。
由于是多级挑选,所以where要领前提一定不止一个,所以要拼接where要领的值,我是个TPer,用TP5的要领举例:
$b = input('category');//吸收的分类id
$a = input('mode'); //吸收的形式id
$c = input('price'); //吸收的价钱局限值
$where = ['category'=>$category,'mode'=>$mode,'price'=>$price];//拼接where前提
$data = model('表名')->where($where)->select(); //查询数据
return $this->fetch('',[
'data'=>$data,
'c'=>$c,
'b'=>$b,
'a'=>$a
]); //模板赋值
固然,现实的状况一定要设前提推断三个值的数据的,依据值的状况设定where前提。比方:
if ($a == 0 && $b == 0 && $c == 0) {//前提悉数为空,即显现一切 $where = ''; } elseif ($a == 0 && $b != 0 && $c != 0) {//形式为悉数局限,分类和价钱零丁指定。 $where = ['b'=>$b,'c'=>$c]; }
由于我的代码写的比较冗余,就不献丑了哈...
末了完成的结果是如许:
图中的款式能够在标签里推断,假如页面吸收的参数值和当前标签中的值雷同,则给标签高亮款式。至此,就是如许,假如有同砚有更好的思绪,请不吝赐教。
以上就是TP5简朴完成相似淘宝多级商品挑选功用(代码示例)的细致内容,更多请关注ki4网别的相干文章!