好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

ajax +php无刷新分页代码

index.php代码如下:

header( "content-type: text/html; charset=utf-8" );  error_reporting (e_all^e_notice);  include ( 'pagination_class.php' );  mysql_connect( 'localhost' ,  'root' ,  '' )  or   die (mysql_error());  mysql_select_db( 'mydemo' );  mysql_query( "set names 'utf8'" );  ?>  <script language= "javascript"  src= "pagination.js" ></script>  <link rel= "stylesheet"  type= "text/css"  href= "style.css"  />  <?  $qry  =  "select * from students" ;  $searchtext  =  "" ;  if ( $_request [ 'search_text' ]!= "" ){    $searchtext  =  $_request [ 'search_text' ];    $qry  .= " where name like '$searchtext%'" ;  }  //for pagination   $starting =0;  $recpage  = 2; //number of records per page      $obj  =  new  pagination_class( $qry , $starting , $recpage );    $result  =  $obj ->result;            ?><form name= "form1"  action= "testpage.php"  method= "post" >          <table border= "1"  align= "center"  width= "40%" >     <tr>       <td colspan= "2" >      search <input type= "text"  name= "search_text"  id= "search_text"  value= "<?php echo $searchtext; ?>" >       <input type= "submit"  value= "search" >       </td>      </tr>     <tr><td colspan= "2" >          <div id= "page_contents" >      <table border= "1"  align= "center"  width= "100%" >      <tr><td>sl no</td><td>name</td></tr>      <? if (mysql_num_rows( $result )!=0){        $counter  =  $starting  + 1;        while ( $data  = mysql_fetch_array( $result )) {?>        <tr>        <td><?  echo   $counter ; ?></td>        <td><?  echo   $data [ 'name' ]; ?></td>        </tr><?         $counter  ++;       } ?>                     <tr><td colspan= "2" ><?  echo   $obj ->anchors; ?></td></tr>       <tr><td colspan= "2" ><?  echo   $obj ->total; ?></td></tr>      <?} else {?> //开源代码phpfensi.com        <tr><td align= "center"  colspan= "2" >no data found</td></tr>      <?}?>      </td></tr>      </table>     </div>     </td></tr>    </table></form> 

 

pagination.js文件,代码如下:

    function  $()   {      var  elements =  new  array();      for  ( var  i = 0; i < arguments.length; i++)     {        var  element = arguments[i];        if  ( typeof  element ==  'string' )         element = document.getelementbyid(element);        if  (arguments.length == 1)          return  element;       elements.push(element);     }      return  elements;   }    var  xmlhttp  function  pagination(page)  {  xmlhttp=getxmlhttpobject();  if  (xmlhttp== null )    {    alert ( "your browser does not support ajax!" );     return ;    }  var  url= "test_sub.php" ;  url = url+ "?starting=" +page;  url = url+ "&search_text=" +$( 'search_text' ).value;  url=url+ "&sid=" +math.random();  xmlhttp.onreadystatechange=statechanged;  xmlhttp.open( "get" ,url, true );  xmlhttp.send( null );  }    function  statechanged()   {   if  (xmlhttp.readystate==4)  {   $( "page_contents" ).innerhtml=xmlhttp.responsetext;  }  }    function  getxmlhttpobject()  {  var  xmlhttp= null ;  try     {     // firefox, opera 8.0+, safari     xmlhttp= new  xmlhttprequest();    }  catch  (e)    {     // internet explorer      try       {      xmlhttp= new  activexobject( "msxml2.xmlhttp" );      }     catch  (e)      {      xmlhttp= new  activexobject( "microsoft.xmlhttp" );      }    }  return  xmlhttp;  } 

pagination_class.php,代码如下:

<?php  /*   you can use it with out any worries...it is free for you..it will display the out put like:   first | previous | 3 | 4 | 5 | 6 | 7| 8 | 9 | 10 | next | last   page : 7  of  10 . total records found: 20   */   class  pagination_class{    var   $result ;    var   $anchors ;    var   $total ;    function  pagination_class( $qry , $starting , $recpage )   {     $rst   = mysql_query( $qry )  or   die (mysql_error());     $numrows  = mysql_num_rows( $rst );     $qry    .=  " limit $starting, $recpage" ;     $this ->result = mysql_query( $qry )  or   die (mysql_error());     $next   =  $starting + $recpage ;     $var   = (( intval ( $numrows / $recpage ))-1)* $recpage ;     $page_showing  =  intval ( $starting / $recpage )+1;     $total_page  =  ceil ( $numrows / $recpage );       if ( $numrows  %  $recpage  != 0){      $last  = (( intval ( $numrows / $recpage )))* $recpage ;    } else {      $last  = (( intval ( $numrows / $recpage ))-1)* $recpage ;    }     $previous  =  $starting - $recpage ;     $anc  =  "<ul id='pagination-flickr'>" ;     if ( $previous  < 0){      $anc  .=  "<li class='previous-off'>first</li>" ;      $anc  .=  "<li class='previous-off'>previous</li>" ;    } else {      $anc  .=  "<li class='next'><a href='网页特效:pagination(0);'>first </a></li>" ;      $anc  .=  "<li class='next'><a href='javascript:pagination($previous);'>previous </a></li>" ;    }        ################ if  you dont want the numbers just comment this block###############      $norepeat  = 4; //no of pages showing in the left and right side of the current page in the anchors       $j  = 1;     $anch  =  "" ;     for ( $i = $page_showing ;  $i >1;  $i --){      $fpreviouspage  =  $i -1;      $page  =  ceil ( $fpreviouspage * $recpage )- $recpage ;      $anch  =  "<li><a href='javascript:pagination($page);'>$fpreviouspage </a></li>" . $anch ;      if ( $j  ==  $norepeat )  break ;      $j ++;    }     $anc  .=  $anch ;     $anc  .=  "<li class='active'>" . $page_showing . "</li>" ;     $j  = 1;     for ( $i = $page_showing ;  $i < $total_page ;  $i ++){      $fnextpage  =  $i +1;      $page  =  ceil ( $fnextpage * $recpage )- $recpage ;      $anc  .=  "<li><a href='javascript:pagination($page);'>$fnextpage</a></li>" ;      if ( $j == $norepeat )  break ;      $j ++;    }    ############################################################     if ( $next  >=  $numrows ){      $anc  .=  "<li class='previous-off'>next</li>" ;      $anc  .=  "<li class='previous-off'>last</li>" ;    } else {      $anc  .=  "<li class='next'><a href='javascript:pagination($next);'>next </a></li>" ;      $anc  .=  "<li class='next'><a href='javascript:pagination($last);'>last</a></li>" ;    }      $anc  .=  "</ul>" ;     $this ->anchors =  $anc ;         $this ->total =  "page : $page_showing <i> of  </i> $total_page . total records found: $numrows" ;   }  }  ?> 

数据库代码如下:

-- phpmyadmin sql dump   -- version 3.2.4   -- http://www.phpmyadmin.net   --   -- 主机: localhost   -- 生成日期: 2010 年 07 月 07 日 09:26   -- 服务器版本: 5.1.41   -- php 版本: 5.3.1     set  sql_mode= "no_auto_value_on_zero" ;    --   -- 数据库: `mydemo`   --     -- --------------------------------------------------------     --   -- 表的结构 `students`   --     create   table  if  not  exists `students` (    `id`  int (11)  not   null  auto_increment,    ` name `  varchar (50)  not   null   default   '' ,     primary   key  (`id`)  ) engine=myisam   default  charset=utf8 auto_increment=21 ;    --   -- 转存表中的数据 `students`   --     insert   into  `students` (`id`, ` name `)  values   (1,  '小明' ),  (2,  'aniesh' ),  (3,  'babu' ),  (4,  '小黄' ),  (5,  'praveesh' ),  (6,  'dixon' ),  (7,  'sanju' ),  (8,  'neeraj' ),  (9,  'siju' ),  (10,  'noble' ),  (11,  'bibin' ),  (12,  'febin' ),  (13,  'binu' ),  (14,  'charles' ),  (15,  'jaggu' ),  (16,  'mani' ),  (17,  'milu' ),  (18,  'aravind' ),  (19,  'jay' ),  (20,  'hari' );  

查看更多关于ajax +php无刷新分页代码的详细内容...

  阅读:49次