php+ajax實現無重新整理資料分頁的辦法_php技巧

來源:互聯網
上載者:User

本文執行個體講述了php+ajax實現無重新整理分頁的方法。分享給大家供大家參考。具體實現方法如下:

index.php 檔案,代碼如下:

<?php header("Content-type: text/html;charset=GBK");//輸出編碼,避免中文亂碼 ?> <html> <head> <title>ajax分頁示範</title> <script language="javascript" src="ajaxpg.js"></script> <link rel="stylesheet" type="text/css" href="page.css"> </head> <body> <div id="result"> <?php $page=isset($_GET['page'])?intval($_GET['page']):1; //這句就是擷取page=18中的page的值,假如不存在page,那麼頁數就是1。 $num=3; //每頁顯示10條資料  $db=mysql_connect("localhost","root","123456"); //建立資料庫連接 mysql_select_db("demo",$db) or die("資料庫連結錯誤"); //選擇要操作的資料庫 mysql_query("set names gbk"); /* 首先咱們要擷取資料庫中到底有多少資料,才能判斷具體要分多少頁,具體的公式就是 總資料庫除以每頁顯示的條數,有餘進一。 也就是說10/3=3.3333=4 有餘數就要進一。 */  $result=mysql_query("select * from brand"); $total=mysql_num_rows($result); //查詢所有的資料  $url='test.php';//設定ajax提交頁面地址的URL,這裡設定成test.php通過ajax把參數傳遞給test.php再把處理過的內容賦值到本頁的div id=result。 //頁碼計算 $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="<ul>";  //開始分頁導航條代碼: $pagenav.="<li>顯示第 <B>".($total?($offset+1):0)."</B>-<B>".min($offset+10,$total)."</B> 條記錄</li><li>共 $total 條記錄 </li>";  //如果只有一頁則跳出函數: if($pagenum<=1) return false;  $pagenav.="<li> <a href=javascript:dopage('result','$url?page=1');>首頁</a></li> "; if($prepg) $pagenav.="<li> <a href=javascript:dopage('result','$url?page=$prepg');>前頁</a></li> "; else $pagenav.=" <li>前頁</li> "; if($nextpg) $pagenav.="<li><a href=javascript:dopage('result','$url?page=$nextpg');>後頁</a> </li>"; else $pagenav.=" <li>後頁</li> "; $pagenav.="<li> <a href=javascript:dopage('result','$url?page=$pagenum');>尾頁</a></li> "; $pagenav.="<li>第 $page 頁</li><li>共 $pagenum 頁</li></ul>";  //假如傳入的頁數參數大於總頁數,則顯示錯誤資訊 If($page>$pagenum){  Echo "Error : Can Not Found The page ".$page;  Exit; //開源軟體:phpfensi.com } ?></div><div id="results"> <?php  echo $pagenav;//輸出分頁導航 ?> </div> </body> </html> 

css代碼:

/* CSS Document */ /* CSS Document */ #result ul li{ height:20px; width:auto; display:block; color:#999; border:1px solid #999; float:left; list-style:none; font-size:12px; margin-left:5px; line-height:20px; vertical-align:middle; text-align:center; } #result ul li a:link{ width:50px; height:20px; display:block; line-height:20px; background:#09C; border:1px solid #fff; color:#fff; text-decoration:none; } #result ul li a:hover{ width:50px; height:20px; display:block; line-height:20px; background:#09C; border:1px solid #fff; color:#F60; text-decoration:none; } 

ajaxpg.js檔案,如下:

// JavaScript Document 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.XMLHttp");  }catch(e){} }  } if(!http_request){//異常,建立對象執行個體失敗 window.alert("建立XMLHttp對象失敗!"); return false; } http_request.onreadystatechange=processrequest; //確定發送請求方式,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("results").style.display="none";  document.getElementById(reobj).innerHTML=http_request.responseText; } else{//頁面不正常  alert("您所請求的頁面不正常!"); } }  }  function dopage(obj,url){ document.getElementById(obj).innerHTML="<font color='green' font-size='12'>正在讀取資料...</font>"; send_request(url); reobj=obj; } 

資料庫檔案,如下:

-- phpMyAdmin SQL Dump -- version 2.8.1 -- 主機: localhost -- 伺服器版本: 5.0.22 -- PHP 版本: 5.2.12 -- -- 資料庫: `demo` -- -- -------------------------------------------------------- -- -- 表的結構 `brand` -- CREATE TABLE `brand` (  `id` int(7) NOT NULL auto_increment,  `sp_brand` varchar(255) default NULL,  PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ; -- -- 匯出表中的資料 `brand` -- INSERT INTO `brand` (`id`, `sp_brand`) VALUES (1, 'hello world'), (2, '你好'), (3, '恩'), (4, 'fdsafdsafdsa'), (5, 'fdsafdafdsafdas'), (6, 'fdsafdsa'), (7, 'fdsafdsafdas'), (8, '恩'), (9, '恩'), (10, '恩'), (11, '恩11'), (12, '恩'), (13, '恩'), (14, '恩'), (15, '恩'), (16, '恩'), (17, '恩'), (18, '恩18'); 

下面介紹這些檔案的功能

ajaxpg.js:ajax無重新整理核心檔案,一般不要去作修改.

index.php:實現ajax無重新整理的檔案了,這裡調用了ajaxpg.js檔案,配置了mysql使用者密碼,要和自己本地的一致,以及顯示分頁的效果.

page.css:這是分頁的CSS樣式檔案,用來美化的,就不多介紹了.

brand.sql:這是MYSQL資料庫的檔案了,進行匯入到MYSQL資料庫中,同樣,如果不會匯入,可以參考PHPfensi.com中如何匯入.sql文章即可。

例子非常的簡單大家只要按流程來操作就ok啦,希望這篇文章能協助大家真正的實現php+ajax無重新整理分頁。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.