php+ajax實現無刷新數據分頁例子
php語言1.73W
無刷新功能我們用到很多很多的,下面我就來給各位介紹一個實例,就是實現php+ajax實現無刷新數據分頁了,例子非常的簡單大家只要按流程來操作就可以了哦. 文件代碼如下: <?php header("Content-type: text/html;charset=GBK");//輸出編碼,避免中文亂碼 ?> <html> <head> <title>ajax分頁演示</title> <script language="javascript" src=""></script> <link rel="stylesheet" type="text/css" href=""> </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='';//設置ajax提交頁面地址的URL,這裏設置成通過ajax把參數傳遞給再把處理過的.內容賦值到本頁的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>"($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; //開源軟件: } ?></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; } 文件如下: // JavaScript Document var http_request=false; function send_request(url){//初始化,指定處理函數,發送請求的函數 http_request=false; //開始初始化XMLHttpRequest對象 if(ttpRequest){//Mozilla瀏覽器 http_request=new XMLHttpRequest(); if(http_rideMimeType){//設置MIME類別 http_rideMimeType("text/xml"); } } else if(veXObject){//IE瀏覽器 try{ http_request=new ActiveXObject("ttp"); }catch(e){ try{ http_request=new ActiveXobject("ttp"); }catch(e){} } } if(!http_request){//異常,創建對象實例失敗 t("創建XMLHttp對象失敗!"); return false; } http_adystatechange=processrequest; //確定發送請求方式,URL,及是否同步執行下段代碼 http_("GET",url,true); http_(null); } //處理返回信息的函數 function processrequest(){ if(http_yState==4){//判斷對象狀態 if(http_us==200){//信息已成功返回,開始處理信息 lementById("results")lay="none"; lementById(reobj)rHTML=http_onseText; } else{//頁面不正常 alert("您所請求的頁面不正常!"); } } } function dopage(obj,url){ lementById(obj)rHTML="<font color='green' font-size='12'>正在讀取數據...</font>"; send_request(url); reobj=obj; } 數據庫文件如下: -- phpMyAdmin SQL Dump -- version 2.8.1 -- -- -- 主機: localhost -- 生成日期: 2010 年 01 月 22 日 14:41 -- 服務器版本: 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'); 下面介紹這些文件的功能 :ajax無刷新核心文件,一般不要去作修改. :實現ajax無刷新的文件了,這裏調用了文件,配置了mysql用户密碼,要和自己本地的一致,以及顯示分頁的效果. :這是分頁的CSS樣式文件,用來美化的,就不多介紹了. :這是MYSQL數據庫的文件了,進行導入到MYSQL數據庫中,同樣,如果不會導入,可以參考中如何導入文章即可.
-
PHP中iconv函數知識
iconv函數庫能夠完成各種字符集間的轉換,是php編程中不可缺少的基礎函數庫。下面是小編為大家蒐集整理出來的有關於PHP中iconv函數知識,有需要的小夥伴可以參考下。今天在修改論文在線的時候,遇到了iconv這個函數。學習一下1234header('Content-Type:applicat...
-
PHP中閉包的一些常見問題
PHP具有非常強大的功能,所有的CGI的功能PHP都能實現,而且支持幾乎所有流行的數據庫以及操作系統。最重要的是PHP可以用C、C++進行程序的擴展!以下是小編為大家搜索整理的PHP中閉包的一些常見問題,希望能給大家帶來幫助!更多精彩內容請持續關注我們應屆畢業生考試...
-
PHP 7.1中都有哪些重大更新
PHP7.1.0帶來了大量的改進和新功能:可空類型返回空類型可迭代的psuedo-type支持常量可見的類數組解構square框架和在list()中允許指定keys多異常類型捕獲,以下是小編為大家搜索整理的PHP7.1中都有哪些重大更新,希望能給大家帶來幫助!更多精彩內容請及時關注我們應...
-
php多個文件及圖片上傳實例詳解
主要介紹了php多個文件及圖片上傳的方法,以實例形式詳細敍述了多文件上傳的原理與實現技巧,非常實用,需要的朋友可以參考下。本文實例講述了php多個文件及圖片上傳的方法。分享給大家供大家參考。具體實現方法如下:多個文件上傳是在單文件上傳的基礎上利用遍歷...