溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在php中利用jax實(shí)現(xiàn)一個(gè)無刷新分頁功能

發(fā)布時(shí)間:2021-01-26 15:13:36 來源:億速云 閱讀:133 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章給大家介紹怎么在php中利用jax實(shí)現(xiàn)一個(gè)無刷新分頁功能,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

具體如下:

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

怎么在php中利用jax實(shí)現(xiàn)一個(gè)無刷新分頁功能

<?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' => "個(gè)記錄", "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 . '" >
    <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;';
  }

  //頁面列表配置選項(xiàng)
  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中利用jax實(shí)現(xiàn)一個(gè)無刷新分頁功能

<?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>序號(hào)</td><td>名稱</td><td>數(shù)量</td><td>價(jià)格</td><td>時(shí)間</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. 實(shí)例化分頁類對(duì)象
$page_obj = new Pagination($total,$per);

//4. 拼裝sql語句,獲得每頁信息
//利用page_obj實(shí)現(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無刷新分頁實(shí)現(xiàn)

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

怎么在php中利用jax實(shí)現(xiàn)一個(gè)無刷新分頁功能

怎么在php中利用jax實(shí)現(xiàn)一個(gè)無刷新分頁功能

<!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>
    <h3>ajax無刷新分頁效果</h3>
    <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中利用jax實(shí)現(xiàn)一個(gè)無刷新分頁功能

關(guān)于怎么在php中利用jax實(shí)現(xiàn)一個(gè)無刷新分頁功能就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI