当前位置:首页 > 专题管理

多条件搜索

适用范围:全站任意地方均可使用

标签作用:用于执行站内搜索功能

1、简单的搜索示例

<form action="{pboot:scaction}"  method="get">
    关键字:<input type="text" name="keyword" >
    <button type="submit">搜索</button>
</form>

使用说明:

  • {pboot:scaction} 为搜索提交地址
  • 注意:表单提交方式为get,此表单默认匹配title标题字段

2、定义搜索字段示例

<form action="{pboot:scaction}"  method="get">
    关键字:<input type="text" name="keyword" >
    <input type="hidden" name="field" value="title" >
    <button type="submit">搜索</button>
</form>
//或:
<form action="{pboot:scaction}"  method="get">
 
    <select name="field">
        <option value="title">内容标题</option>
        <option value="content">内容详情</option>
    </select>
    关键字:<input type="text" name="keyword" >
    <button type="submit">搜索</button>
</form>
通过添加隐藏域传递field值来控制搜索的字段,也可以同时设置多个字段,如: value="title|content" ,当然这只是方式之一,后面还有!

3、定义更多搜索条件示例

<form action="{pboot:scaction}"  method="get">
    关键字:<input type="text" name="keyword" >
    <input type="hidden" name="field" value="title" >
    <input type="hidden" name="scode" value="2,3" >
    <button type="submit">搜索</button>
</form>
这里只定义搜索的字段和搜索的分类,其实你可以定义更多数据库中任意可用的字段。如author为admin的:name="author" value="admin",当然你可以使用非隐藏域,那么就相当于综合搜索类型。
  • 如果需要定义的scode分类有多个,可以用逗号隔开,同时需要注意,如果表单传递的分类和字段无效时,要考虑结果页循环是否做了限制。
  • 这里只定义搜索的字段和搜索的分类,其实你可以定义更多数据库中任意可用的字段。如author为admin的:name="author" value="admin",当然你可以使用非隐藏域,那么就相当于综合搜索类型。
  • (V1.3.7+)如果有多个搜索表单想定义不同的结果页模板,那么可以传递searchtpl字段来定义模板页,如:<input type="hidden" name="searchtpl" value="test.html" >

4、多条件综合搜索示例

<form action="{pboot:scaction}"  method="get">
    内容:<input type="text" name="content" >
    标题:<input type="text" name="title" >
    作者:<input type="text" name="author" >
    <input type="hidden" name="scode" value="2,3" >
    <button type="submit">搜索</button>
</form>

这里自定义了三个字段,其实你可以定义更多数据库中任意可用的字段。

    如果URL采用兼容模式,这时候搜索应该使用POST,或者在首行添加隐藏域,<input type="hidden" name="search" >

5、搜索结果列表

{pboot:search}
<a href="[search:link]">[search:title]</a>
{/pboot:search}

使用说明:

  1. 搜索结果页面使用模板search.html
  2. num=*  每页数量,非必填,用于控制分页大小
  3. order=*   排序方式,非必填,用于输出内容的排序方式,可选:date、sorting、istop、isrecommend、isheadline、visits、likes、oppose等字段,其中sorting为按后台填写的排序,122版本开始支持自定义模式,如:order='date desc,id desc' 、order='sorting desc,id desc',(V1.3.7+)还支持random随机排序
  4. spre=*  分类编码,非必填,加前面说的方式,此作为第二种限制搜索分类的方式,多个分类用逗号隔开,如: spre='2,3,4'
  5. field=* 字段限制,非必填,在使用了keyword时用于限定匹配的数据库字段,多个字段用竖线隔开即可,如:field='title|content'
  6. filter=*|x,y 数据过滤,非必填,用于对列表内容进行过滤筛选,如:filter=title|ASP,PHP 只显示标题含有ASP和PHP的内容
  7. fuzzy=*  是否模糊匹配,非必填,可选1或0,1时为默认的模糊匹配,0则关闭

搜索结果默认执行分页,使用内容列表的分页代码即可.

6、搜索结果列表可用标签

获取当前搜索内容:{pboot:keyword}

对搜索结果关键字进行标红 mark=1 (V2.0.5新增),如:[search:title mark=1];

[search:n]序号从0开始
[search:i]序号从1开始
[search:id]编号
[search:spre]分类编码
[search:subspre]副分类编码
[search:sortname]分类名称
[search:subsortname]副分类名称
[search:sortlink]分类链接
[search:subsortlink]副分类链接
[search:title]标题
[search:titlecolor]标题颜色
[search:subtitle]副标题
[search:author]作者
[search:source]来源
[search:link]链接
[search:outlink]外部链接
[search:date]发布日期
[search:ico]缩略图
[search:pics]多图
[search:content]内容
[search:enclosure]附件
[search:enclosuresize]附件大小
[search:keywords]关键词
[search:description]描述
[search:istop]是否置顶
[search:isrecommend]是否推荐
[search:isheadline]是否头条
[search:visits]访问数量
[search:likes]点赞数量
[search:oppose]反对数量
[search:likeslink]点赞链接
[search:opposelink]反对链接

本章节内容共分 1 部分:

  1. 多条件搜索