thinkphp之ajax分页类
<?php class IndexAction extends Action { public function index() { import("@.ORG.Page"); //导入分页类 $Form = M(‘Form‘); $list = $Form->select(); // $list = range(2,51); $param = array( ‘result‘=>$list, //分页用的数组或sql ‘listvar‘=>‘list‘, //分页循环变量 ‘listRows‘=>10, //每页记录数 ‘parameter‘=>‘search=key&name=thinkphp‘,//url分页后继续带的参数 ‘target‘=>‘content‘, //ajax更新内容的容器id,不带# ‘pagesId‘=>‘page‘, //分页后页的容器id不带# target和pagesId同时定义才Ajax分页 ‘template‘=>‘Index:ajaxlist‘,//ajax更新模板 ); $this->page($param); $this->display(); } /** +---------------------------------------------------------- * 分页函数 支持sql和数据集分页 sql请用 buildSelectSql()函数生成 +---------------------------------------------------------- * @access public +---------------------------------------------------------- * @param array $result 排好序的数据集或者查询的sql语句 * @param int $totalRows 每页显示记录数 默认21 * @param string $listvar 赋给模板遍历的变量名 默认list * @param string $parameter 分页跳转的参数 * @param string $target 分页后点链接显示的内容id名 * @param string $pagesId 分页后点链接元素外层id名 * @param string $template ajaxlist的模板名 * @param string $url ajax分页自定义的url +---------------------------------------------------------- */ public function page($param) { extract($param); import("@.ORG.Page"); //总记录数 $flag = is_string($result); $listvar = $listvar ? $listvar : ‘list‘; $listRows = $listRows? $listRows : 21; if ($flag) $totalRows = M()->table($result . ‘ a‘)->count(); else $totalRows = ($result) ? count($result) : 1; //创建分页对象 if ($target && $pagesId) $p = new Page($totalRows, $listRows, $parameter, $url,$target, $pagesId); else $p = new Page($totalRows, $listRows, $parameter,$url); //抽取数据 if ($flag) { $result .= " LIMIT {$p->firstRow},{$p->listRows}"; $voList = M()->query($result); } else { $voList = array_slice($result, $p->firstRow, $p->listRows); } $pages = C(‘PAGE‘);//要ajax分页配置PAGE中必须theme带%ajax%,其他字符串替换统一在配置文件中设置, //可以使用该方法前用C临时改变配置 foreach ($pages as $key => $value) { $p->setConfig($key, $value); // ‘theme‘=>‘%upPage% %linkPage% %downPage% %ajax%‘; 要带 %ajax% } //分页显示 $page = $p->show(); //模板赋值 $this->assign($listvar, $voList); $this->assign("page", $page); if ($this->isAjax()) {//判断ajax请求 layout(false); $template = (!$template) ? ‘ajaxlist‘ : $template; exit($this->fetch($template)); } return $voList; } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。