>  기사  >  백엔드 개발  >  PHP 페이지 매김 탐색 Ajax PHP 페이지 매김 데모

PHP 페이지 매김 탐색 Ajax PHP 페이지 매김 데모

WBOY
WBOY원래의
2016-07-29 08:36:001122검색

오늘은 모모의 페이징 설명을 보다가 오랫동안 원본 영역에 아무도 글을 올리지 않은 것 같아서, 모모의 페이징 설명을 확장하여 PHP AJAX 페이징 데모를 보여드리고 싶습니다. 우리는 여전히 기본 AJAX를 사용하고 있습니다.

코드 복사 코드는 다음과 같습니다.

var http_request=false; function send_request(url){//초기화, 처리 기능, 요청을 보내는 기능 지정

http_request=false;
//XMLHttpRequest 객체 초기화 시작
if(window.XMLHttpRequest){// Mozilla 브라우저
http_request=new XMLHttpRequest();
if(http_request.overrideMimeType){//MIME 범주 설정
http_request.overrideMimeType("text/xml")
}
else if (window.ActiveXObject){//IE 브라우저
try{
http_request=new ActiveXObject("Msxml2.XMLHttp")
}catch(e){
try{
http_request=new ActiveXobject("Microsoft.XMLH ttp") ;
}catch(e){}
} }
}
if(!http_request){//예외, 개체 인스턴스를 생성하지 못했습니다.
window.alert("XMLHttp 객체 생성 실패!" );
return false;
}
http_request.
//요청 메소드, URL, 동기 실행 여부 결정
http_request.open("GET",url,true) ;
http_request.send(null)
}
//반환된 정보를 처리하는 함수
function processrequest(){
if(http_request.readyState==4){//판단 객체 상태
if(http_request.status==200){//정보가 성공적으로 반환되었으니 정보 처리를 시작하세요
document.getElementById(reobj ).innerHTML=http_request.responseText;
}  
else{/ /페이지가 정상이 아닙니다.
Alert("요청하신 페이지가 정상이 아닙니다! ");
} }
}
}
function dopage(obj,url){
document.getElementById(obj).innerHTML="데이터를 읽는 중...";
send_request(url);
reobj=obj;
}

페이지 넘기기 작업이 발생하면 AJAX를 사용하여 페이지 넘기기 효과를 얻습니다. . 콘텐츠 표시 페이지 코드입니다:



코드 복사

코드는 다음과 같습니다.

header("Content-type: text/html;charset=GBK");//输出编码,避免中文乱码
?> 
 
 
ajax分页演示 
 
 
 

 
$page=isset($_GET['page'])?intval($_GET['page']):1; //这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。
$num=10; //每页显示10条数据
$db=mysql_connect("localhost","root","7529639"); //创建数据库连接
mysql_select_db("cr_download"); //选择要操作的数据库
/*
首先咱们要获取数据库中到底有多少数据,才能判断具体要分多少页,具体的公式就是
总数据库除以每页显示的条数,有余进一。
也就是说10/3=3.3333=4 有余数就要进一。
*/
$result=mysql_query("select * from cr_userinfo");
$total=mysql_num_rows($result); //查询所有的数据
$url='test.php';//获取本页URL
//页码计算
$pagenum=ceil($total/$num); //获得总页数,也是最后一页
$page=min($pagenum,$page);//获得首页
$prepg=$page-1;//上一页
$nextpg=($page==$pagenum ? 0 : $page+1);//下一页
$offset=($page-1)*$num; //获取limit的第一个参数的值,假如第一页则为(1-1)*10=0,第二页为(2-1)*10=10。
//开始分页导航条代码:
$pagenav="显示第 ".($total?($offset+1):0)."-".min($offset+10,$total)." 条记录,共 $total 条记录 "; 
//如果只有一页则跳出函数: 
if($pagenum<=1) return false;
$pagenav.=" 首页 "; 
if($prepg) $pagenav.=" 前页 "; else $pagenav.=" 前页 "; 
if($nextpg) $pagenav.=" 后页 "; else $pagenav.=" 后页 "; 
$pagenav.=" 尾页 "; 
$pagenav.=" 页,共 $pagenum 页"; 
//假如传入的页数参数大于总页数,则显示错误信息 
If($page>$pagenum){ 
       Echo "Error : Can Not Found The page ".$page; 
       Exit; 

$info=mysql_query("select * from cr_userinfo limit $offset,$num");   //获取相应页数所需要显示的数据 
While($it=mysql_fetch_array($info)){ 
       Echo $it['username']; 
       echo "
"; 
}                                                              //显示数据 
  echo"
"; 
  echo $pagenav;//输出分页导航 
?> 


페이지 넘김의 핵심은 페이지를 넘길 때 dopage() 함수를 호출한 다음 콜백 정보를 사용하여 div의 내용을 업데이트하는 것입니다. . 서버 측 핵심 코드:

코드 복사 코드는 다음과 같습니다.

header("Content- 유형: text/ html;charset=GBK");//중국어 문자 깨짐을 방지하기 위한 출력 인코딩
$page=isset($_GET['page'])?intval($_GET['page']):1 ; //이 문장은 page=18에서 페이지의 값을 가져오는 것입니다. 페이지가 존재하지 않으면 페이지 번호는 1입니다.
$num=10;                                                                                 ~       // 페이지당 10개의 데이터 표시
$db=mysql_connect("localhost", "root", "7529639") l_select_db("cr_download" ; 막대 수가 더 많습니다. 하나보다.
즉, 10/3=3.3333=4 나머지가 있으면 1씩 반올림해야 합니다.
*/
$result=mysql_query("select * from cr_userinfo");
$total=mysql_num_rows($result); //모든 데이터 쿼리
$url='test.php' ; //이 페이지의 URL을 가져옵니다
//페이지 번호 계산
$pagenum=ceil($total/$num) ,$page);//홈페이지 가져오기
$prepg=$page- 1;//이전 페이지
$nextpg=($page==$pagenum ? 0 : $page 1);//다음 페이지
$offset=($page-1)*$num;                                      ~         // 가져오기 Limit의 첫 번째 매개변수 값, 첫 번째 페이지가 (1-1)*10=0이면 두 번째 페이지는 (2-1)*10=10입니다.
//페이징 탐색 바코드 시작:
$pagenav=" 페이지 표시".($total?($offset 1):0)."- ".min($offset 10,$total)." 레코드, 총 $total 레코드 ";
//페이지가 하나만 있는 경우 함수에서 빠져나옵니다.
if($ 페이지 번호<= 1) false를 반환합니다.
$pagenav.=" 홈페이지 "
($ prepg) $pagenav.=" 이전 페이지> "; else $pagenav.=" 이전 페이지 " ;
if($nextpg) $pagenav.="
다음 페이지 "; =" 다음 페이지 ";
$pagenav.=" 마지막 페이지 "; pagenav.=" 페이지, 총 $pagenum 페이지"
//전달된 페이지 번호 매개변수가 총 페이지 수보다 큰 경우 오류 메시지가 표시됩니다.
If($ page>$pagenum) {
Echo "오류: ".$page
종료
}
$info=mysql_query("select * from cr_userinfo $offset,$ num"); / /해당 페이지 번호에 표시해야 할 데이터를 가져옵니다
While($it=mysql_fetch_array($info)){
Echo $it['username'];
echo "
";
}                                                                                   
이후

위에서는 PHP 페이징 네비게이션 내용을 포함하여 PHP 페이징 네비게이션 Ajax PHP 페이징 데모를 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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