오늘은 모모의 페이징 설명을 보다가 오랫동안 원본 영역에 아무도 글을 올리지 않은 것 같아서, 모모의 페이징 설명을 확장하여 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");//输出编码,避免中文乱码
?>
$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;//输出分页导航
?>
코드 복사 코드는 다음과 같습니다.
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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.