欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php+ajax實現(xiàn)無刷新分頁

 更新時間:2015年11月18日 11:21:19   作者:小平果118  
這篇文章主要介紹了php+ajax實現(xiàn)無刷新分頁的方法,詳細(xì)講述了Ajax文件的實現(xiàn)及PHP調(diào)用方法,需要的朋友可以參考下

本文實例講述了php+ajax實現(xiàn)無刷新分頁實現(xiàn)方法。分享給大家供大家參考。具體如下:

    limit  偏移量,長度;
    limit  0,7;   第一頁
    limit  7,7;   第二頁
    limit  14,7;  第三頁
每頁信息條數(shù):7
信息總條數(shù):select count(*) from table
信息總頁數(shù):ceil向上取整(總條數(shù)/每頁條數(shù))
1、分頁類具體使用

<?php

class Pagination {

  private $total; //數(shù)據(jù)表中總記錄數(shù)
  private $listRows; //每頁顯示行數(shù)
  private $limit; //mysql 數(shù)據(jù)庫的limit
  private $uri; //分頁信息前面的uri地址
  private $pageNum; //頁數(shù)
  private $config = array('header' => "個記錄", "prev" => "【上一頁】", "next" => "【下一頁】", "first" => "【首 頁】", "last" => "【尾 頁】");
  private $listNum = 8;

  /*
   * $total 當(dāng)前信息總條數(shù)
   * $listRows 每頁顯示的條數(shù)
   * $pa 下面的page
    http://網(wǎng)址/index.php?page=5
   */

  public function __construct($total, $listRows = 10, $pa = "") {
    $this->total = $total;
    $this->listRows = $listRows;
    $this->uri = $this->getUri($pa);
    $this->page = !empty($_GET["page"]) ? $_GET["page"] : 1;//不傳入page,則默認(rèn)顯示首頁
    $this->pageNum = ceil($this->total / $this->listRows);
    $this->limit = $this->setLimit();
  }

  //設(shè)置每頁顯示的條數(shù)
  private function setLimit() {
    return "Limit " . ($this->page - 1) * $this->listRows . ", {$this->listRows}";
  }

  //獲得URL地址
  private function getUri($pa) {
    $url = $_SERVER["REQUEST_URI"] . (strpos($_SERVER["REQUEST_URI"], '?') ? '' : "?") . $pa;

    $parse = parse_url($url);



    if (isset($parse["query"])) {
      parse_str($parse['query'], $params);
      unset($params["page"]);
      $url = $parse['path'] . '?' . http_build_query($params);
    }

    return $url;
  }

  //魔術(shù)方法,
  public function __get($args) {
    if ($args == "limit")
      return $this->limit;
    else
      return null;
  }

  //頁面開始的條數(shù)
  private function start() {
    if ($this->total == 0)
      return 0;
    else
      return ($this->page - 1) * $this->listRows + 1;
  }

  //頁面結(jié)束的條數(shù)
  private function end() {
    return min($this->page * $this->listRows, $this->total);
  }

  /*設(shè)置首頁*/
  private function first() {
    $html = "";
    if ($this->page == 1)
      $html.='&nbsp;'.$this->config["first"].'&nbsp;';
    else
      $html.="&nbsp;<a href='javascript:void(0)' onclick='showPage(\"{$this->uri}&page=1\")'>{$this->config["first"]}</a>&nbsp;";
      //$html.="&nbsp;<a href='{$this->uri}&page=1'>{$this->config["first"]}</a>&nbsp;";

    return $html;
  }

  /*設(shè)置上一頁*/
  private function prev() {
    $html = "";
    if ($this->page == 1)
      $html.='&nbsp;'.$this->config["prev"].'&nbsp;';
    else
      $html.="&nbsp;<a href='javascript:void(0)' onclick='showPage(\"{$this->uri}&page=" . ($this->page - 1) . "\")'>{$this->config["prev"]}</a>&nbsp;";
      //$html.="&nbsp;<a href='{$this->uri}&page=".($this->page-1)."'>{$this->config["prev"]}</a>&nbsp;";

    return $html;
  }

  //頁碼列表【首頁】【2】【3】…………【尾頁】
  private function pageList() {
    $linkPage = "";

    $inum = floor($this->listNum / 2);

    for ($i = $inum; $i >= 1; $i--) {
      $page = $this->page - $i;

      if ($page < 1)
        continue;

      $linkPage.="&nbsp;<a href='javascript:void(0)' onclick='showPage(\"{$this->uri}&page={$page}\")'>{$page}</a>&nbsp;";
    }

    $linkPage.="&nbsp;{$this->page}&nbsp;";


    for ($i = 1; $i <= $inum; $i++) {
      $page = $this->page + $i;
      if ($page <= $this->pageNum)
        $linkPage.="&nbsp;<a href='javascript:void(0)' onclick='showPage(\"{$this->uri}&page={$page}\")'>{$page}</a>&nbsp;";
      else
        break;
    }

    return $linkPage;
  }

  /*設(shè)置下一頁*/ 
  private function next() {
    $html = "";
    if ($this->page == $this->pageNum)
      $html.='&nbsp;'.$this->config["next"].'&nbsp;';
    else
      $html.="&nbsp;<a href='javascript:void(0)' onclick='showPage(\"{$this->uri}&page=" . ($this->page + 1) . "\")'>{$this->config["next"]}</a>&nbsp;";
      //$html.="&nbsp;<a href='{$this->uri}&page=".($this->page + 1)."'>{$this->config["next"]}</a>&nbsp;";

    return $html;
  }

  /*設(shè)置尾頁*/
  private function last() {
    $html = "";
    if ($this->page == $this->pageNum)
      $html.='&nbsp;'.$this->config["last"].'&nbsp;';
    else
      $html.="&nbsp;<a href='javascript:void(0)' onclick='showPage(\"{$this->uri}&page=" . ($this->pageNum) . "\")'>{$this->config["last"]}</a>&nbsp;";
      //$html.="&nbsp;<a href='{$this->uri}&page=.(this->pageNum).'>{$this->config["last"]}</a>&nbsp;";

    return $html;
  }

  /*設(shè)置頁面跳轉(zhuǎn)*/
  private function goPage() {

    return 
    '&nbsp;<input type="text" onkeydown="javascript:if(event.keyCode==13){var page=(this.value>' . $this->pageNum . ')?' . $this->pageNum . ':this.value;showPage(\'' . $this->uri . '&page=\'+page+\'\')}" value="' . $this->page . '" style="width:25px">
    <input type="button" value="GO" onclick="javascript:var page=(this.previousSibling.value>' . $this->pageNum . ')?' . $this->pageNum . ':this.previousSibling.value;showPage(\'' . $this->uri . '&page=\'+page+\'\')">&nbsp;';
  }

  //頁面列表配置選項
  function fpage($display = array(0, 1, 2, 3, 4, 5, 6, 7, 8)) {
    $html[0] = "&nbsp;共有<b>{$this->total}</b>{$this->config["header"]}&nbsp;";
    $html[1] = "&nbsp;每頁顯示<b>" . ($this->end() - $this->start() + 1) . "</b>條,本頁<b>{$this->start()}-{$this->end()}</b>條&nbsp;";
    $html[2] = "&nbsp;<b>{$this->page}/{$this->pageNum}</b>頁&nbsp;";

    $html[3] = $this->first();
    $html[4] = $this->prev();
    $html[5] = $this->pageList();
    $html[6] = $this->next();
    $html[7] = $this->last();
    $html[8] = $this->goPage();
    $fpage = '';
    foreach ($display as $index) {
      $fpage.=$html[$index];
    }

    return $fpage;
  }

}

2 數(shù)據(jù)顯示

<?php

//鏈接數(shù)據(jù)庫

//獲得具體信息

//分頁顯示
header("content-type:text/html;charset=utf-8");
$link = mysql_connect('localhost','root','111111');
mysql_select_db('shop', $link);
mysql_query("set names utf8");
$css = <<<eof
<style type="text/css">
  table {border:1px solid black; width:700px; margin:auto; border-collapse:collapse;}
  td {border:1px solid black; }
</style>
eof;
echo $css;

echo "
<table>
  <tr><td>序號</td><td>名稱</td><td>數(shù)量</td><td>價格</td><td>時間</td></tr>

";

//1 引入分頁類
include "./Pagination.php";

//2. 獲得信息總條數(shù)
$sql = "select * from sw_goods";
$qry = mysql_query($sql);
$total = mysql_num_rows($qry);
$per  = 7;

//3. 實例化分頁類對象
$page_obj = new Pagination($total,$per);

//4. 拼裝sql語句,獲得每頁信息
//利用page_obj實現(xiàn)limit的靈活設(shè)置
//$page_obj -> limit;
$sqla = "select * from sw_goods ".$page_obj->limit;
$qrya = mysql_query($sqla);

//5. 獲得頁面列表
$pagelist = $page_obj -> fpage(array(3,4,5,6,7,8));

$i=1;
while($rsta = mysql_fetch_assoc($qrya)){
  echo "<tr>";
  echo "<td>".$i++."</td>";
  echo "<td>".$rsta['goods_name']."</td>";
  echo "<td>".$rsta['goods_number']."</td>";
  echo "<td>".$rsta['goods_price']."</td>";
  echo "<td>".date("Y-m-d H:i:s",$rsta['goods_create_time'])."</td>";
  echo "</tr>";
}
echo "<tr><td colspan=5>".$pagelist."</td></tr>";
echo "</table>";

3 ajax無刷新分頁實現(xiàn)

open(‘get','http://網(wǎng)址/index.php?page=2')

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
  <head>
    <title>新建網(wǎng)頁</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="description" content="" />
    <meta name="keywords" content="" />

    <script type="text/javascript">
//獲得分頁信息ajax函數(shù)
function showPage(myurl){
  var xhr = new XMLHttpRequest();
  xhr.onreadystatechange = function(){
    if(xhr.readyState==4){
      var rst = document.getElementById("result");
      rst.innerHTML = xhr.responseText;
    }
  }
  xhr.open("get",myurl);
  xhr.send(null);
}
window.onload = function(){
  showPage("./data1.php"); //獲得分頁信息
  //showPage("./data.php?page=2");
}
    </script>

    <style type="text/css">
    </style>
  </head>


  <body>
    <h2>ajax無刷新分頁效果</h2>
    <div id="result"></div>
  </body>
</html>
<script type="text/javascript">
  document.write(new Date()+"<br />");
  document.write(new Date()+"<br />");
  document.write(new Date()+"<br />");
  document.write(new Date()+"<br />");
</script>

希望本文所述對大家的PHP程序設(shè)計有所幫助。

相關(guān)文章

最新評論