phpcms筛选怎么用?筛选条件如何添加使用?-1

Phpcms 的筛选功能主要用于内容列表页实现多条件过滤,比如按地区、价格、类型等快速查找内容。虽然 Phpcms 官方版本没有内置完整的可视化筛选模块,但可以通过自定义字段和 URL 参数结合模板逻辑来实现筛选效果。

一、准备筛选字段

在使用筛选前,先确保你的模型中包含可用于筛选的字段:

进入后台“内容模型管理”,选择对应模型(如文章模型)添加自定义字段,例如:area(地区)、price(价格)、type(类型)字段类型可选“下拉框”、“单选按钮”或“文本框”,并设置可用选项

二、在内容发布时填写筛选字段

添加完字段后,发布内容时需填入对应的值,这样才能在前端进行数据提取和比对。

三、前端模板中实现筛选表单

在列表模板(如 list.html)中构建筛选表单,通过 GET 方式传递参数:

立即学习“PHP免费学习笔记(深入)”;

<form method="get" action=""> <select name="area"> <option value="">全部地区</option> <option value="beijing" {if $GET[area]==’beijing’}selected{/if}>北京</option> <option value="shanghai" {if $GET[area]==’shanghai’}selected{/if}>上海</option> </select><p><select name="price"><option value="">全部价格</option><option value="100" {if $GET[price]==’100′}selected{/if}>100元以下</option><option value="500" {if $GET[price]==’500′}selected{/if}>500元以下</option></select><button type="submit">筛选</button></form>

四、在 PHP 中处理筛选条件

修改列表页控制器或使用 list_tag 查询时加入条件判断:

{php $where = "status=99";}{if $GET[‘area’]} $where .= " AND area='{$_GET[‘area’]}’"; {/if}{if $GET[‘price’]} {if $_GET[‘price’] == ‘100’} $where .= " AND price <= 100"; {/if} {if $_GET[‘price’] == ‘500’} $where .= " AND price <= 500"; {/if}{/if}<p>{pc:get sql="SELECT * FROM v9_news WHERE $where ORDER BY updatetime DESC" return="data" page="$page" pagesize="10"}{loop $data $r}<h3>{$r[title]}</h3>{/loop}{/pc:get}

五、支持分页与保留筛选参数

使用 Phpcms 的分页标签时,确保筛选参数能随分页保留:

{pc:content action="lists" catid="$catid" num="10" page="$page" where="$where" order="updatetime DESC"} {loop $data $r} <p>{$r[title]}</p> {/loop} {$pages}{/pc:content}

这样分页变量会自动继承当前 GET 参数。

基本上就这些。关键是利用自定义字段 + URL 参数 + 模板逻辑组合实现筛选功能,不复杂但需要手动处理条件拼接。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。