首页 > 代码库 > thinkphp之ajax分页类
thinkphp之ajax分页类
<?phpclass 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; }}
thinkphp之ajax分页类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。