用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

ajax +php无刷新分页代码

时间:2015-01-23  来源:西部数据  作者:西部数据

index.php代码如下:

  1. header("content-type: text/html; charset=utf-8"); 
  2. error_reporting(e_all^e_notice); 
  3. include('pagination_class.php'); 
  4. mysql_connect('localhost''root'''or die(mysql_error()); 
  5. mysql_select_db('mydemo'); 
  6. mysql_query("set names 'utf8'"); 
  7. ?> 
  8. <script language="javascript" src="pagination.js"></script> 
  9. <link rel="stylesheet" type="text/css" href="style.css" /> 
  10. <? 
  11. $qry = "select * from students"
  12. $searchtext = ""
  13. if($_request['search_text']!=""){ 
  14.  $searchtext = $_request['search_text']; 
  15.  $qry .=" where name like '$searchtext%'"
  16. //for pagination 
  17. $starting=0; 
  18. $recpage = 2;//number of records per page 
  19.   
  20. $obj = new pagination_class($qry,$starting,$recpage);   
  21. $result = $obj->result; 
  22.  
  23.     
  24.    ?><form name="form1" action="testpage.php" method="post"
  25.     
  26.    <table border="1" align="center" width="40%"
  27.    <tr> 
  28.      <td colspan="2"
  29.     search <input type="text" name="search_text" id="search_text" value="<?php echo $searchtext; ?>"
  30.      <input type="submit" value="search"
  31.      </td>  
  32.    </tr> 
  33.    <tr><td colspan="2"
  34.     
  35.    <div id="page_contents"
  36.     <table border="1" align="center" width="100%"
  37.     <tr><td>sl no</td><td>name</td></tr> 
  38.     <?if(mysql_num_rows($result)!=0){ 
  39.      $counter = $starting + 1; 
  40.      while($data = mysql_fetch_array($result)) {?> 
  41.       <tr> 
  42.       <td><? echo $counter; ?></td> 
  43.       <td><? echo $data['name']; ?></td> 
  44.       </tr><? 
  45.       $counter ++; 
  46.      } ?> 
  47.      
  48.        
  49.      <tr><td colspan="2"><? echo $obj->anchors; ?></td></tr> 
  50.      <tr><td colspan="2"><? echo $obj->total; ?></td></tr> 
  51.     <?}else{?>//开源代码phpfensi.com 
  52.      <tr><td align="center" colspan="2">no data found</td></tr> 
  53.     <?}?> 
  54.     </td></tr> 
  55.     </table> 
  56.    </div> 
  57.    </td></tr> 
  58.   </table></form> 

 

pagination.js文件,代码如下:
  1.    function $()  
  2. {  
  3.   var elements = new array();  
  4.   for (var i = 0; i < arguments.length; i++)  
  5.   {  
  6.     var element = arguments[i];  
  7.     if (typeof element == 'string')  
  8.       element = document.getelementbyid(element);  
  9.     if (arguments.length == 1)  
  10.       return element;  
  11.     elements.push(element);  
  12.   }  
  13.   return elements;  
  14.  
  15. var xmlhttp 
  16. function pagination(page) 
  17. xmlhttp=getxmlhttpobject(); 
  18. if (xmlhttp==null
  19.   { 
  20.   alert ("your browser does not support ajax!"); 
  21.   return
  22.   } 
  23. var url="test_sub.php"
  24. url = url+"?starting="+page; 
  25. url = url+"&search_text="+$('search_text').value; 
  26. url=url+"&sid="+math.random(); 
  27. xmlhttp.onreadystatechange=statechanged; 
  28. xmlhttp.open("get",url,true); 
  29. xmlhttp.send(null); 
  30.  
  31. function statechanged()  
  32. {  
  33. if (xmlhttp.readystate==4) 
  34. {  
  35. $("page_contents").innerhtml=xmlhttp.responsetext; 
  36.  
  37. function getxmlhttpobject() 
  38. var xmlhttp=null
  39. try 
  40.   { 
  41.   // firefox, opera 8.0+, safari 
  42.   xmlhttp=new xmlhttprequest(); 
  43.   } 
  44. catch (e) 
  45.   { 
  46.   // internet explorer 
  47.   try 
  48.     { 
  49.     xmlhttp=new activexobject("msxml2.xmlhttp"); 
  50.     } 
  51.   catch (e) 
  52.     { 
  53.     xmlhttp=new activexobject("microsoft.xmlhttp"); 
  54.     } 
  55.   } 
  56. return xmlhttp; 

pagination_class.php,代码如下:

  1. <?php 
  2. /* 
  3. you can use it with out any worries...it is free for you..it will display the out put like: 
  4. first | previous | 3 | 4 | 5 | 6 | 7| 8 | 9 | 10 | next | last 
  5. page : 7  of  10 . total records found: 20 
  6. */ 
  7. class pagination_class{ 
  8.  var $result
  9.  var $anchors
  10.  var $total
  11.  function pagination_class($qry,$starting,$recpage
  12.  { 
  13.   $rst  = mysql_query($qryor die(mysql_error()); 
  14.   $numrows = mysql_num_rows($rst); 
  15.   $qry   .= " limit $starting, $recpage"
  16.   $this->result = mysql_query($qryor die(mysql_error()); 
  17.   $next  = $starting+$recpage
  18.   $var  = ((intval($numrows/$recpage))-1)*$recpage
  19.   $page_showing = intval($starting/$recpage)+1; 
  20.   $total_page = ceil($numrows/$recpage); 
  21.  
  22.   if($numrows % $recpage != 0){ 
  23.    $last = ((intval($numrows/$recpage)))*$recpage
  24.   }else
  25.    $last = ((intval($numrows/$recpage))-1)*$recpage
  26.   } 
  27.   $previous = $starting-$recpage
  28.   $anc = "<ul id='pagination-flickr'>"
  29.   if($previous < 0){ 
  30.    $anc .= "<li class='previous-off'>first</li>"
  31.    $anc .= "<li class='previous-off'>previous</li>"
  32.   }else
  33.    $anc .= "<li class='next'><a href='网页特效:pagination(0);'>first </a></li>"
  34.    $anc .= "<li class='next'><a href='javascript:pagination($previous);'>previous </a></li>"
  35.   } 
  36.    
  37.   ################if you dont want the numbers just comment this block###############  
  38.   $norepeat = 4;//no of pages showing in the left and right side of the current page in the anchors  
  39.   $j = 1; 
  40.   $anch = ""
  41.   for($i=$page_showing$i>1; $i--){ 
  42.    $fpreviouspage = $i-1; 
  43.    $page = ceil($fpreviouspage*$recpage)-$recpage
  44.    $anch = "<li><a href='javascript:pagination($page);'>$fpreviouspage </a></li>".$anch
  45.    if($j == $norepeatbreak
  46.    $j++; 
  47.   } 
  48.   $anc .= $anch
  49.   $anc .= "<li class='active'>".$page_showing."</li>"
  50.   $j = 1; 
  51.   for($i=$page_showing$i<$total_page$i++){ 
  52.    $fnextpage = $i+1; 
  53.    $page = ceil($fnextpage*$recpage)-$recpage
  54.    $anc .= "<li><a href='javascript:pagination($page);'>$fnextpage</a></li>"
  55.    if($j==$norepeatbreak
  56.    $j++; 
  57.   } 
  58.   ############################################################ 
  59.   if($next >= $numrows){ 
  60.    $anc .= "<li class='previous-off'>next</li>"
  61.    $anc .= "<li class='previous-off'>last</li>"
  62.   }else
  63.    $anc .= "<li class='next'><a href='javascript:pagination($next);'>next </a></li>"
  64.    $anc .= "<li class='next'><a href='javascript:pagination($last);'>last</a></li>"
  65.   } 
  66.    $anc .= "</ul>"
  67.   $this->anchors = $anc
  68.    
  69.   $this->total = "page : $page_showing <i> of  </i> $total_page . total records found: $numrows"
  70.  } 
  71. ?> 

数据库代码如下:

  1. -- phpmyadmin sql dump 
  2. -- version 3.2.4 
  3. -- http://www.phpmyadmin.net 
  4. -- 
  5. -- 主机: localhost 
  6. -- 生成日期: 2010 年 07 月 07 日 09:26 
  7. -- 服务器版本: 5.1.41 
  8. -- php 版本: 5.3.1 
  9.  
  10. set sql_mode="no_auto_value_on_zero"
  11.  
  12. -- 
  13. -- 数据库: `mydemo` 
  14. -- 
  15.  
  16. -- -------------------------------------------------------- 
  17.  
  18. -- 
  19. -- 表的结构 `students` 
  20. -- 
  21.  
  22. create table if not exists `students` ( 
  23.   `id` int(11) not null auto_increment, 
  24.   `namevarchar(50) not null default ''
  25.   primary key (`id`) 
  26. ) engine=myisam  default charset=utf8 auto_increment=21 ; 
  27.  
  28. -- 
  29. -- 转存表中的数据 `students` 
  30. -- 
  31.  
  32. insert into `students` (`id`, `name`) values 
  33. (1, '小明'), 
  34. (2, 'aniesh'), 
  35. (3, 'babu'), 
  36. (4, '小黄'), 
  37. (5, 'praveesh'), 
  38. (6, 'dixon'), 
  39. (7, 'sanju'), 
  40. (8, 'neeraj'), 
  41. (9, 'siju'), 
  42. (10, 'noble'), 
  43. (11, 'bibin'), 
  44. (12, 'febin'), 
  45. (13, 'binu'), 
  46. (14, 'charles'), 
  47. (15, 'jaggu'), 
  48. (16, 'mani'), 
  49. (17, 'milu'), 
  50. (18, 'aravind'), 
  51. (19, 'jay'), 
  52. (20, 'hari');
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
    无相关信息
栏目更新
栏目热门