您当前的位置:首页 > 广州网站建设-CMS > 其他的

列表实现条件筛选的方法

时间:2017-05-13 16:14:57  来源:  作者:

{xiao:template header.html}

只是演示下列表筛选实现的方法没有美化css哈。原理就是通过获取url对应的参数值然后填入到{xiao:list里面,具体可根据自己的需求改动。
后台建diqu(地区)sex(性别)price(价格)这三个字段(地区和性别,可以选择单选按钮和下拉框,价格文本就可以了)
代码部分开始了
======================================
{xiao:php //php部分开始,下面是完整的php代码
 $list_url = array();
 foreach ($_GET as $n=>$v) $list_url[$n] = Base::get($n);
 $list_url[page]='[page]';
 $urlrule = url('index',$list_url);
 //上面写了一大堆 只是为了获取一个分页url规则和把url拆分成数组

 $content_model = get_cache('content_model');//获取内容模型
 $content_model = $content_model[1][fields];//内容模型的所有字段
 $diquarr = $content_model['diqu'][setting];//地区的设置
 $diquarr = string2array($diquarr);//把文本专为数组
 $diquarr = explode(chr(13), $diquarr[content]);//分割数组 分割条件是一行一个
 $sexarr = $content_model['sex'][setting];//和以上类似
 $sexarr = string2array($sexarr);
 $sexarr = explode(chr(13), $sexarr[content]);
 //看起来一大堆,其实只是只是为了获取 diqu 和sex设置的数组。如果你觉得麻烦,那么就自己写数组吧,就不用上面看起来吓死人的代码了。 如价格就是写数组了。
 $pricearr = array('500元以下'=>'0-500','500-1000元'=>'500-1000','1000-1500元'=>'1000-1500','1500元以上'=>'1500-9999');
}

<!--筛选开始-->
//地区这个有高亮显示,以下类似去添加
{xiao:loop $diquarr $t}
{xiao:php list($select_name, $select_value) = explode('|', $t);}
<li><a href="index.php?catid=3&diqu={xiao:$select_value}&sex={xiao:$list_url['sex']}&price={xiao:$list_url['price']}" {xiao:if $list_url['diqu']==$select_value}style="color:red"{/xiao:if}>{xiao:$select_name} </a></li>
{/xiao:loop}

{xiao:loop $sexarr $t}
{xiao:php list($select_name, $select_value) = explode('|', $t);}
<li><a href="index.php?catid=3&diqu={xiao:$list_url['diqu']}&sex={xiao:$select_value}&price={xiao:$list_url['price']}">{xiao:$select_name}</a></li>
{/xiao:loop}

{xiao:loop $pricearr $k=>$t}
<li><a href="index.php?catid=3&diqu={xiao:$list_url['diqu']}&sex={xiao:$list_url['sex']}&price={xiao:$t}" >{xiao:$k}</a></li>
{/xiao:loop}
<!--筛选部分结束-->

<!--列表开始-->
<div class="newslist">
 <ul class="noborder">
 价格字段是范围查询 所以两边要加上()  urlrule pagesize 具体是干嘛的,请看模板帮助那篇文章
 {xiao:list catid=$catid xiaocms=1 price=($list_url[price])  diqu=$list_url[diqu] sex=$list_url[sex] page=$page urlrule=$urlrule pagesize=2}
 <li><span class="date">{xiao:function.date("Y-m-d", $xiao['time'])}</span> <a href="{xiao:$xiao['url']}">· {xiao:$xiao['title']}</a></li>
 {/xiao:list}
 </ul>
 <div class="listpage" >{xiao:$pagelist}</div>
</div>
<!--列表结束-->








 

您当前未登录    免费注册    会员登录   
查看:346   回复:8

列表实现条件筛选的方法

 
admin
admin

代码以附件的方式上传。直接贴代码 360会拦截

点击下载演示模板

1楼2014-07-01 17:28:24 回复
6
talaon
测试可用,楼主还真用心,轻松搞定了帝国吹得很牛的结合项。
2楼2014-07-02 09:08:41 回复
6
talaon

跟上,

如果地区与男女设置成文本框,并录入前据则不能读取,

3楼2014-07-02 09:34:27 回复
16
ANSON
为什么我测试只能读取价格数组,无法读取地区和性别呢
4楼2014-07-02 10:32:45 回复
1
admin

地区和性别 我用的都是单选项,如果是文本输入框字段的话 那肯定读取不了,只有和价格那样手写一个数组然后循环输出,或者干脆数组都省了,直接写个在url上吧 反正一般网站这个用到的不多,如果就那么三四个选项 我感觉直接固定在url上面更省事。

5楼2014-07-02 10:45:16 回复
16
ANSON
老大,多选怎么筛选?比如租房,环境方面有选项交通方便|有小区环境|近菜市场等,这几个我都要勾选,在列表页筛选的时候,点击其中一项,无法把这条数据筛选出来
6楼2014-07-02 11:21:08 回复
26
kfnpzn
看得出来老大搞这个CMS很用心啊。
7楼2014-07-02 13:12:21 回复
6
talaon

最好能读取数据库里面的内容,这个较灵活一些。

比如一款产品,暂时有三种系列,但后天肯定有可能会出来第4,5个系列,如果能直接读取数据库里的内容的话,那只要在录入的时候直接填名称就好了,无疑会为以后提供相当多的方便。

8楼2014-07-02 13:42:08 回复
32
fffyyy
这个可以
9楼2014-07-03 14:27:11 回复
快速回复
来顶一下
返回首页
返回首页
发表评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
相关文章
    无相关信息
栏目更新
栏目热门