>백엔드 개발 >PHP 튜토리얼 >asp.net ajax PHP ajax 페이징 클래스 코드

asp.net ajax PHP ajax 페이징 클래스 코드

WBOY
WBOY원래의
2016-07-29 08:39:08990검색
 PHP ajax 分页类代码
//이 페이징 클래스는 SQL을 처리하지 않습니다.
//페이징 기능의 속도가 크게 향상됩니다
//http://blog.csdn.net/fkedwgwy
//Xiaoxiang 블로그--Xiaoxiang
/**
演示
require_once('../libs/classes/page.class.php');
$page=new page(array('total'=>1000,'perpage'=>20));
echo 'mode:1
'.$page->show();
echo '
mode:2
'.$page->show(2);
echo '
mode:3
'.$page->show(3);
echo '
mode:4
'.$page->show(4);
echo '
开始AJAX模式:';
$ajaxpage=new page(array('total'=>1000,'perpage'=>20,'ajax'=>'ajax_page','page_name'=>'test'));
echo 'mode:1
'.$ajaxpage->show();
*/
class Zend_Page
{
/**
* 구성, 공개
*/
var $page_name="page " ;//페이지 태그, URL 페이지를 제어하는 ​​데 사용됩니다. 예를 들어, xxx.php?PB_page=2
var $next_page='>';//다음 페이지
var $pre_page='<';//이전 페이지
var $first_page의 PB_page입니다. ='첫 번째';//홈페이지
var $last_page='Last';//마지막 페이지
var $pre_bar='<<';//이전 페이지 표시줄
var $ next_bar=' >>';//다음 페이징 표시줄
var $format_left='';
var $format_right=''
var $is_ajax=false;//AJAX 페이징 지원 여부
var $next_ten_page=">>>";
var $per_ten_page="<<<"
/**
* 비공개
*
*/
var $pagebarnum =10; //레코드 스트립 수를 제어합니다.
var $totalpage=0;//총 페이지 수
var $ajax_acti는 양의 정수가 아닙니다!')
if((!is_int($perpage))||($perpage<= 0 ))$this->error(__FUNCTION__,$perpage.'는 양의 정수가 아닙니다!')
if(!empty($array['page_name']))$this->set(' page_name ',$array['page_name']);//페이지 이름 설정
$this->_set_nowindex($nowindex);//현재 페이지 설정
$this->_set_url($url); // 링크 주소 설정
$this->totalpage=ceil($total/$perpage)
$this->total=$total; this-> ;nowindex-1)*$perpage;
if(!empty($array['ajax']))$this->open_ajax($array['ajax']);//AJAX 모드 열기
}
/**
* 클래스에 지정된 변수 이름의 값을 설정합니다. 변경 사항이 이 클래스에 속하지 않으면 예외가 발생합니다.
*
* @param string $var
* @param 문자열 $값
*/
함수 집합($var,$value)
{
if(in_array($var,get_object_vars($this)))
$this ->$var=$value;
else {
$this->error(__FUNCTION__,$var."는 PB_Page에 속하지 않습니다!");
/**
* 역 AJAX 모드 켜기
*
* @param string $action 기본 Ajax 트리거 동작입니다.
*/
함수 open_ajax($action)
{
$this->is_ajax=true;
$this->ajax_acti
}
/**
* "다음 페이지"를 표시하는 코드 가져오기
*
* @param string $style
* @return string
*/
function next_page($ style="max-width:90%"'.$this->next_page.'';
}
/**
* "이전 페이지"를 표시하는 코드 가져오기
*
* @param string $style
* @return string
*/
function pre_page($style='')
{
if($this->nowindex>1){
return $this->_get_link($this->_get_url ($this->nowindex-1),$this->pre_page,$style)
}
return ''.$this->pre_page .'';
}
/**
* "마지막 10페이지"를 표시하는 코드 가져오기
*
* @param string $style
* @return string
*/
function pre_ten_page($style='')
{
if(intval($this->nowindex/10) 1>1 ){
return $this->_get_link($this->_get_url(intval($this->nowindex/10)*10-5),$this->pre_ten_page,$style);
}
return ''.$this->pre_ten_page.'';
}
/**
* "다음 10페이지"를 표시하는 코드 가져오기
*
* @param string $style
* @return string
*/
function next_ten_page($style='')
{
if(intval($this->nowindex/10) totalpage/10)){
return $this->_get_link($this->_get_url((intval($this->nowindex/10) 1)*10 5),$this->next_ten_page,$style)
}
return ''.$this->next_ten_page.'';
}
/**
* "홈 페이지"를 표시하는 코드 가져오기
*
* @return 문자열
*/
function first_page($style='')
{
if($this->nowindex==1){
return ''.$this->first_page.'';
}
return $this->_get_link($this-> _get_url(1),$this->first_page,$style)
}
/**
* "마지막 페이지"를 표시하는 코드 가져오기
*
* @return string
*/
function last_page($style='')
{
if($this->nowindex==$this->totalpage){
return ''.$this->last_page.'' ;
}
return $this->_get_link($this->_get_url($this->totalpage),$this->last_page,$style);
}
function nowbar($style='',$nowindex_style='')
{
$plus=ceil($this->pagebarnum/2);
if($this->pagebarnum-$plus $this->nowindex>$this->totalpage)$plus=($this->pagebarnum-$this->totalpage $this-> 지금색인);
$begin=$this->nowindex-$plus 1;
$begin=($begin>=1)?$begin:1;
$return='';
for($i=$begin;$i<$begin $this->pagebarnum;$i )
{
if($i<=$this->totalpage){
if($i!=$this->nowindex)
$return.=$this->_get_text($this->_get_link($this->_get_url($i),$i,$style )));
else
$return.=$this->_get_text(''.$i.'');
}else{
break;
}
$return.="n";
}
unset($begin)
return $return;
* 점프 버튼을 표시하는 코드 가져오기
*
* @return string
*/
함수 select()
{
$return=''; return
}
/**
* mysql 문에서 제한에 필요한 값을 가져옵니다.
*
* @return string
*/
함수 offset()
{
return $this->offset;
/**
* 페이징 표시 스타일 제어(해당 스타일 추가 가능)
*
* @param int $mode
* @return string
*/
함수 표시($mode=1,$url='')
{
스위치($mode)
{
case '1 ':
$this->next_page='下一页';
$this->pre_page='상일页';
return $this->pre_page().$this->nowbar().$this->next_page().'第'.$this->select().'页';
휴식;
케이스 '2':
$this->next_page='下一页';
$this->pre_page='상일页';
$this->first_page='首页';
$this->last_page='尾页';
return $this->first_page().$this->pre_page().'[第'.$this->nowindex.'页]'.$this->next_page().$this ->last_page().'第'.$this->select().'页';
휴식;
케이스 '3':
$this->next_page='下一页';
$this->pre_page='상일页';
$this->first_page='首页';
$this->last_page='尾页';
return $this->first_page().$this->pre_page().$this->next_page().$this->last_page();
휴식;
케이스 '4':
$this->next_page='next';
$this->pre_page='마지막';
return $this->pre_page().$this->nowbar().$this->next_page();
휴식;
케이스 '5':
$this->pre_bar().$this->pre_page().$this->nowbar().$this->next_page().$this를 반환합니다. ->next_bar();
휴식;
케이스 '6':
//启用了“上一页”,“下一页”,“最后一页”。可根据情况启用“第一页”。
//$this ->first_page='';
$this->pre_page='';
$this->next_page='';
$this->last_page='最后一页';
//return "".$this->select().""."页< ;/span>"."".$this->first_page().""."".$this->pre_page().""."".$this->next_page()."" ."".$this->last_page()."";
"共유[".$this->total."]件商품    ".$this->nowindex."/".$this->totalpage를 반환합니다. "页"."".$this->pre_page()."  ".$this->next_page().""."< ;td width=145>".$this->last_page()."   ".$this->select()."   页  ";
휴식;
케이스 '7':
$this->next_page='';
$this->pre_page='';
$this->first_page='';
$this->last_page='';
if($this->totalpage==0)
{$this->nowindex=0;}
return $this->first_page()."  ".$this-> pre_page()."  ".$this->next_page()."  ".$this->last_page()."  ".$this->select();
휴식;
케이스 '8':
//启用了“上一页”, “下一页”, “最后一页”。可根据情况启用“第一页”。
//$this->first_page='';
$this->pre_page='';
$this->next_page='';
$this->last_page='最后一页';
if($this->totalpage==0)
{$this->nowindex=0;}
//return "" .$this->select()."".""."first_page().""."".$this->pre_page()."". "".$this->next_page().""."".$this->last_page( )."";
"共有[".$this->total."]条信息    ".$this->nowindex."/".$this->totalpage를 반환합니다. "页"."".$this->pre_page()."  ".$this->next_page().""."< ;td width=145>".$this->last_page()."   ".$this->select()."   页  ";
휴식;
}
}
/*---프라이빗 함수(私유방법)--------------- ------------------*/
/ **
* URL 헤더 주소 설정
* @param: String $url
* @return boolean
*/
함수 _set_url($url="")
{
if(!empty($url)){
//手动设置
$this-> ;url=$url.((stristr($url,'?'))?'&':'?').$this->page_name."=";
}else{
//自动获取
if(empty($_SERVER['QUERY_STRING'])){
//不存재QUERY_STRING时
$this->url=$ _SERVER['REQUEST_URI']."?".$this->page_name."=";
}else{
//
if(stristr($_SERVER['QUERY_STRING'],$this->page_name.'=')){
//地址存在页face参数
$this->url=str_replace($this->page_name.'='.$this->nowindex,'',$_SERVER['REQUEST_URI']);
$last=$this->url[strlen($this->url)-1];
if($last=='?'||$last=='&'){
$this->url.=$this->page_name."=";
}else{
$this->url.='&'.$this->page_name."=";
}
}else{
//
$this->url=$_SERVER['REQUEST_URI'].'&'.$this->page_name.'=';
}//end if
}//end if
}//end if
}
/**
* 현재 페이지 설정
*
*/
function _set_nowindex($nowindex)
{
if(empty($nowindex)){
//系统获取
if(isset($_GET[$this->page_name])){
$this->nowindex =intval($_GET[$this->페이지_이름]);
}
}else{
//手动设置
$this->nowindex=intval($nowindex);
}
}
/**
* 지정된 페이지의 주소 값을 반환합니다.
*
* @param int $pageno
* @return string $url
*/
function _get_url($pageno=1)
{
return $this->url.$pageno;
}
/**
* 페이지 매김 표시 텍스트 가져오기. 예를 들어 기본적으로 _get_text('1')는 [1를 반환합니다. ]
*
* @param String $str
* @return string $url
*/
function _get_text($str)
{
return $this->format_left.$str.$this->format_right;
}
/**
* 링크 주소 받기
*/
function _get_link($url,$text,$style=''){
$style=(empty($style))?'' :'class="'.$style.'"';
if($this->is_ajax){
//如果是使用AJAX模式
return ''.$text.'';
}else{
return ''.$text.'';
}
}
/**
* 오류 처리 방법
*/
function error($function,$errormsg)
{
die(' 파일에 오류가 있습니다.'. __FILE__.' ,함수 '.$function.'() :'.$errormsg);
}
}
?>

以上就介绍了asp.net ajax PHP ajax 分页类代码, 包括了asp.net ajax방면적 内容, 希望对PHP教程有兴趣的朋友有所帮助.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.