zoukankan      html  css  js  c++  java
  • 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;
    	}
    }
    
  • 相关阅读:
    Matlab将字符串改成变量名-eval
    Workbench-材料库
    UG-装配
    FreeCAD将Macro自定义到工具栏
    FreeCAD加载ui文件显示于组合浏览器
    字符生成线条字-xdd1997
    ANSYS求解器
    常用物理量及其单位以及材料信息
    Appium | UiAutomator exited unexpectedly with code 0, signal null
    【转】windows改变Sublime选中背景颜色
  • 原文地址:https://www.cnblogs.com/stoneryan/p/4218713.html
Copyright © 2011-2022 走看看