最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php+ajax實(shí)現(xiàn)無(wú)刷新分頁(yè)

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

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

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

<?php

class Pagination {

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

  /*
   * $total 當(dāng)前信息總條數(shù)
   * $listRows 每頁(yè)顯示的條數(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)顯示首頁(yè)
    $this->pageNum = ceil($this->total / $this->listRows);
    $this->limit = $this->setLimit();
  }

  //設(shè)置每頁(yè)顯示的條數(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;
  }

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

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

  /*設(shè)置首頁(yè)*/
  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è)置上一頁(yè)*/
  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;
  }

  //頁(yè)碼列表【首頁(yè)】【2】【3】…………【尾頁(yè)】
  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è)置下一頁(yè)*/ 
  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è)置尾頁(yè)*/
  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è)置頁(yè)面跳轉(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;';
  }

  //頁(yè)面列表配置選項(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;每頁(yè)顯示<b>" . ($this->end() - $this->start() + 1) . "</b>條,本頁(yè)<b>{$this->start()}-{$this->end()}</b>條&nbsp;";
    $html[2] = "&nbsp;<b>{$this->page}/{$this->pageNum}</b>頁(yè)&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ù)庫(kù)

//獲得具體信息

//分頁(yè)顯示
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 引入分頁(yè)類
include "./Pagination.php";

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

//3. 實(shí)例化分頁(yè)類對(duì)象
$page_obj = new Pagination($total,$per);

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

//5. 獲得頁(yè)面列表
$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無(wú)刷新分頁(yè)實(shí)現(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)頁(yè)</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="description" content="" />
    <meta name="keywords" content="" />

    <script type="text/javascript">
//獲得分頁(yè)信息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"); //獲得分頁(yè)信息
  //showPage("./data.php?page=2");
}
    </script>

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


  <body>
    <h2>ajax無(wú)刷新分頁(yè)效果</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>

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

相關(guān)文章

  • PHP中判斷變量為空的幾種方法小結(jié)

    PHP中判斷變量為空的幾種方法小結(jié)

    判斷變量為空,在許多場(chǎng)合都會(huì)用到,同時(shí)自己和許多新手一樣也經(jīng)常會(huì)犯一些錯(cuò)誤,所以自己整理了一下PHP中一些常用的、判斷變量為空的方法
    2013-11-11
  • php常用的url處理函數(shù)總結(jié)

    php常用的url處理函數(shù)總結(jié)

    這篇文章主要介紹了php常用的url處理函數(shù),實(shí)例總結(jié)了parse_url、rawurldecode、urlencode、urldecode等一些較為常用的URL處理函數(shù),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-11-11
  • PHP 雜談《重構(gòu)-改善既有代碼的設(shè)計(jì)》之五 簡(jiǎn)化函數(shù)調(diào)用

    PHP 雜談《重構(gòu)-改善既有代碼的設(shè)計(jì)》之五 簡(jiǎn)化函數(shù)調(diào)用

    前幾篇系列文章,我比較關(guān)注的是 PHP 雜談《重構(gòu)-改善既有代碼的設(shè)計(jì)》之一 重新組織你的函數(shù) 但是我覺(jué)得我還是沒(méi)有說(shuō)清楚,我自己也有很多不理解的地方,而且這篇是我的第一篇這方面的文章,有很多的紕漏,所以我會(huì)經(jīng)常性的去做修改,如果大家有好的意見(jiàn)不妨告知一、二
    2012-05-05
  • php關(guān)鍵字僅替換一次的實(shí)現(xiàn)函數(shù)

    php關(guān)鍵字僅替換一次的實(shí)現(xiàn)函數(shù)

    這篇文章主要介紹了php實(shí)現(xiàn)每個(gè)關(guān)鍵字僅需要替換一次,有時(shí)一個(gè)項(xiàng)目里面涉及到批量替換關(guān)鍵字的問(wèn)題,本文針對(duì)控制替換次數(shù)進(jìn)行研究,感興趣的小伙伴們可以參考一下
    2015-10-10
  • PHP pthread拓展使用和注意點(diǎn)

    PHP pthread拓展使用和注意點(diǎn)

    這篇文章主要介紹了PHP pthread拓展使用和注意點(diǎn),對(duì)此有需要的朋友們可以參考閱讀下。
    2020-01-01
  • 詳解PHP的Yii框架的運(yùn)行機(jī)制及其路由功能

    詳解PHP的Yii框架的運(yùn)行機(jī)制及其路由功能

    這篇文章主要介紹了PHP的Yii框架的運(yùn)行機(jī)制及其路由功能,Yii是一個(gè)基于組件的重量級(jí)的PHP框架,適合用來(lái)開(kāi)發(fā)大型網(wǎng)站,需要的朋友可以參考下
    2016-03-03
  • PHP 數(shù)組和字符串互相轉(zhuǎn)換實(shí)現(xiàn)方法

    PHP 數(shù)組和字符串互相轉(zhuǎn)換實(shí)現(xiàn)方法

    PHP 中由于數(shù)組和字符串這兩種變量類型是如此常用,以至于 PHP 具有兩個(gè)函數(shù),可以在字符串和數(shù)組之間互相進(jìn)行轉(zhuǎn)換
    2013-03-03
  • PHP PDO數(shù)據(jù)庫(kù)操作預(yù)處理與注意事項(xiàng)

    PHP PDO數(shù)據(jù)庫(kù)操作預(yù)處理與注意事項(xiàng)

    今天小編就為大家分享一篇關(guān)于PHP PDO數(shù)據(jù)庫(kù)操作預(yù)處理與注意事項(xiàng),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • 將時(shí)間以距今多久的形式表示,PHP,js雙版本

    將時(shí)間以距今多久的形式表示,PHP,js雙版本

    依然從項(xiàng)目需求出發(fā),些了這個(gè)函數(shù),PHP版本寫了一個(gè)Smarty的插件,只要簡(jiǎn)單的修改下函數(shù)名就能直接在PHP中調(diào)用了,同時(shí),為了AJAX翻頁(yè)時(shí)所獲取JSON數(shù)據(jù)中的時(shí)間以同樣的方式顯示,因此又寫了一個(gè)JS的版本
    2012-09-09
  • php輸出echo、print、print_r、printf、sprintf、var_dump的區(qū)別比較

    php輸出echo、print、print_r、printf、sprintf、var_dump的區(qū)別比較

    本篇文章是對(duì)php輸出echo、print、print_r、printf、sprintf、var_dump的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06

最新評(píng)論

洮南市| 清新县| 黑水县| 胶州市| 新竹市| 彩票| 淮阳县| 山丹县| 凤翔县| 诏安县| 望都县| 抚州市| 文水县| 巫山县| 花莲市| 台湾省| 沙坪坝区| 叶城县| 高安市| 太湖县| 张北县| 遂溪县| 清原| 抚远县| 咸丰县| 高淳县| 天峻县| 阿瓦提县| 越西县| 柳河县| 九寨沟县| 分宜县| 左贡县| 孝感市| 富川| 诏安县| 桑日县| 锦州市| 蓬溪县| 清苑县| 门源|