ajax完美实现两个网页 分页功能的实例代码

  分页的首页

  

复制代码 代码如下:

  <meta http-equiv="Content-Type" content="text/html; charset=utf8" />

  <h1 align="center">武侠小说分页</h>

  <br/>

  <script src="jquery-1.4.2.min.js"></script>

  <script>

  var page='';

  function init(page){

  document.getElementById("tables").innerHTML='';

  var xhr;

  if(window.XMLHttpRequest){

  xhr = new XMLHttpRequest();

  }else if(window.ActiveXObject){

  xhr =new ActiveXObject("Microsoft.XMLHTTP")

  }

  var url="fenye.php";

  xhr.open("POST",url,true);

  xhr.onreadystatechange=callback;

  xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

  if(page){

  xhr.send("page="+page);

  }

  else {xhr.send("page=1");}

  var content;

  function callback(){

  if(xhr.readyState==4){

  if(xhr.status==200){

  var json =eval('('+xhr.responseText+')');

  //alert(xhr.responseText);

  var fenye=json.str;

  //  alert(fenye);

  document.getElementById('div').innerHTML=fenye;

  content="<th>ID</th><th>名称</th><th>作者</th><th>出版社</th><th>ISBN号</th><th>类型</th><th>价格</th>";

  for(var i=0;i<json.info.length;i++){

  content+="<tr><td>"+json.info[i].id+"</td><td>"+json.info[i].name+"</td><td>"+json.info[i].author+"</td><td>"+json.info[i].publisher+"</td><td>"+json.info[i].isbn+"</td><td>"+json.info[i].type+"</td><td>"+json.info[i].price+"</tr>";

  document.getElementById("tables").innerHTML=content;

  }

  // alert(fenye);

  }

  }

  }

  }

  </script>

  <body onLoad="init()">

  <h3 align="center">jquery实现$.ajax的分页</h3>

  <table id="tables" style=" width:500px; height:100px; text-align:center" align="center" border="5" bordercolor="#FF6600">

  <th>ID</th><th>名称</th><th>作者</th><th>出版社</th><th>ISBN号</th><th>类型</th><th>价格</th>

  </table>

  <table align="center" style="margin-top:15px">

  <tr><td>

  <td style="colspan:3;height:20">

  <div id="div" style="position:absolute; left: 447px; top: 218px; width: 411px; height: 22px;"></div>

  </td>

  </tr>

  </table>

  <br />

  </body>

  

  分页的php精华代码

  

复制代码 代码如下:

  <?php

  //命令模型层处理数据

  $link=mysql_connect('localhost','root','') or die("失败");

  mysql_select_db('books',$link) or die("连接数据库出错了!");

  //每页显示记录数

  $pagesize = 2;

  //求出总的记录数

  $sql = "select count(*) as total_rows from books";

  $result = mysql_query($sql);

  $total_rows = mysql_fetch_array($result);

  //求总共的页码数

  $pages = ceil($total_rows[0]/$pagesize);

  //当前第几页

  $page = $_POST['page'];

  $strtext = "当前第".$page."页"."总共".$pages."页"."共".$total_rows[0]."记录";

  //var_dump($str);

  //接下来,我要根据当前点击的页码求出对应的数据

  $offset = $pagesize*($page-1);

  $sql = "select * from books limit $offset,$pagesize";

  mysql_query("set names utf8");

  $res=mysql_query($sql);

  $rows=array();

  while($row=mysql_fetch_assoc($res)){

  $rows[]=$row;

  }

  $pageInfo = $rows;

  //echo json_encode($pageInfo);

  //var_dump($pageInfo);

  //将获得数据链接,后返回

  $first=1;

  $prev=$page-1;

  $next=$page+1;

  $last=$pages;

  //命令视图层显示数据

  $first_a = "<a onclick='init(".$first.")' href='#'><img src='3.jpg' width='50px;' height='20px;'/></a>";

  if($page>1){

  $prev_a = "<a onclick='init(".$prev.")' href='#'><img src='1.jpg' width='50px;' height='20px;'/></a>";

  }

  if($page<$pages){

  $next_a = "<a onclick='init(".$next.")' href='#'><img src='2.jpg' width='50px;' height='20px;'/></a>";

  }

  $last_a = "<a onclick='init(".$last.")' href='#'><img src='4.jpg' width='50px;' height='20px;'/></a>";

  @$str = $strtext.$first_a.$prev_a.$next_a.$last_a;

  //var_dump($str);

  $info = array('str'=>$str,'info'=>$pageInfo);

  echo json_encode($info);