php翻页带查询条件,ThinkPHP 分页中带入查询(搜索)条件

parameter 属性赋值

例如要检索用户表中状态为 1 (status=1) 并且电子包含 163 的用户,当提交表单时(注意表单是 GET 方式提交),形成的 URL

地址大致如下:

http://www.5idev.com/index.php/Index/search/status/1/email/163

在搜索操作(search)中主要代码如下:public function search(){

$Dao = M("User");

// 构造查询条件

$condition[‘status‘] = $_GET[‘status‘];

$condition[‘email‘] = array(‘like‘,"%".$_GET[‘email‘]."%");

// 计算总数

$count = $Dao->where($condition)->count();

// 导入分页类

import("ORG.Util.Page");

// 实例化分页类

$p = new Page($count, 10);

// 获取查询参数

$map[‘status‘] = $_GET[‘status‘];

$map[‘email‘] = $_GET[‘email‘];

foreach($map as $key=>$val) {

$p->parameter .= "$key=".urlencode($val)."&";

}

// 分页显示输出

$page = $p->show();

// 当前页数据查询

$list = $Dao->where($condition)->order(‘uid ASC‘)->limit($p->firstRow.‘,‘.$p->listRows)->select();

// 赋值赋值

$this->assign(‘page‘, $page);

$this->assign(‘list‘, $list);

$this->display();

}

在页面的分页链接中,可以看到地址(如第 2 页)为:

http://www.5idev.com/index.php/Index/search/status/1/email/163?status=1&email=163&p=2

可以看见分页链接中已经包含了需要检索的 status=1&email=163 条件。当然,实际解析后的地址应该是:

http://www.5idev.com/index.php/Index/search/status/1/email/163/p/2/

这是因为 ThinkPHP 分页类对 URL 的处理还不够完美造成的。要对此进行改进,参看《ThinkPHP 定制分页风格及URL》。

传入 parameter 参数

带入查询条件的分页关键就是设置分页类的 parameter 属性值。除了上例中给 parameter

属性赋值外,也可以直接在实例化类的时候将 parameter 参数传入,两种方式结果是一致的:$parameter = ‘status=‘.urlencode($_GET[‘status‘]).‘&email=‘.urlencode($_GET[‘email‘]);

// 实例化分页类时加入 parameter 参数

$p = new Page($count, 10, $parameter);

// 分页显示输出

$page = $p->show();

提示

上述例子只是用于讲述分页中带入查询条件的使用,因此未对检索的关键字进行进行安全处理。实际使用中在进行查询之前,应对用户输入的关键词做安全性方面的处理。

原文:http://www.cnblogs.com/xiaofeng028/p/3731809.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值