1. 程式人生 > >javascript專案實戰---ajax實現無重新整理分頁

javascript專案實戰---ajax實現無重新整理分頁

<?php class Pagination { private $total; //資料表中總記錄數 private $listRows; //每頁顯示行數 private $limit; //mysql 資料庫的limit private $uri; //分頁資訊前面的uri地址 private $pageNum; //頁數 private $config = array('header' => "個記錄", "prev" => "【上一頁】", "next" => "【下一頁】", "first" => "【首 頁】", "last"
=> "【尾 頁】"); private $listNum = 8; /* * $total 當前資訊總條數 * $listRows 每頁顯示的條數 * $pa 下面的page http://網址/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,則預設顯示首頁 $this->pageNum = ceil($this->total / $this->listRows); $this->limit = $this->setLimit(); } //設定每頁顯示的條數 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; } //魔術方法, public function __get($args) { if ($args == "limit") return $this->limit; else return null; } //頁面開始的條數 private function start() { if ($this->total == 0) return 0; else return ($this->page - 1) * $this->listRows + 1; } //頁面結束的條數 private function end() { return min($this->page * $this->listRows, $this->total); } /*設定首頁*/ 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; } /*設定上一頁*/ 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; } /*設定下一頁*/ 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; } /*設定尾頁*/ 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; } /*設定頁面跳轉*/ 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; } }

相關推薦

javascript專案實戰---ajax實現重新整理

<?php class Pagination { private $total; //資料表中總記錄數 private $listRows; //每頁顯示行數 private $limit; //mysql 資料庫的limit private $uri; //分頁

asp.net mvc基於jQuery+Ajax實現重新整理

解決方案思想:頁面資料的初始載入和按頁載入都是通過ajax來進行,頁面分頁連結點選後利用ajax技術傳送當前頁碼到後端控制器,後端控制器根據當前頁碼和設定的pageSize從資料庫中取出對應頁的資料。後端控制器處理完後利用PartialView方法把資料返回到分部檢視中,利用

SSH三大框架的整合+利用Ajax實現重新整理

以下是我利用Struts2.3.24、Spring4.0、Hibernate4.2 結合Mysql資料庫進行的ssh整合,實現分頁需要json.js 首先ssh的整合需要匯入所有的jar包 在web.xml <?xml version="1.0" e

tp5+ajax+jq實現重新整理

tp5框架裡面自帶有panigate()+rende()的方法可以超簡單的實現分頁,但是就是看著一直要重新整理很不爽,所以找了網上的好多程式碼,終於找到了一個邏輯簡單的無重新整理分頁,以下是我更改適合之後實現的效果 程式碼裡面有詳細註釋了,就不多說了,說明一下分頁查詢的原

ASP.NET+Ajax+JQuey+Json資料+儲存過程實現重新整理

<!--引入jquery-1.6.2--> <!--ShowPageData1.aspx頁面--> <script src="../Jquery/jquery-1.6.2.min.js" type="text/javascript">&l

asp.net Mvc4 使用ajax結合外掛實現重新整理

本文為在mvc4中使用ajax實現無重新整理分頁demo,記錄一下。 解決方案思想:頁面資料的初始載入和按頁載入都是通過ajax來進行,頁面分頁連結點選後利用ajax技術傳送當前頁碼到後端控制器,後端控制器根據當前頁碼和設定的pageSize從資料庫中取出對應頁的資料。

實現FreeMarker+Ajax重新整理

目前已經使用SpringBoot+MyBatis+PageHelper實現了物理分頁. 現在想通過Ajax實現FreeMarker的無重新整理分頁. 我的理解是最關鍵的地方在於如何替換FreeMarker中的標籤的值. 只要解決了這一點, 就可以輕鬆解決資料回顯和分頁出現的

PHP + JavaScript + Ajax 實現重新整理頁面載入效果

今天這個實驗的思路就是實現一個無重新整理的頁面載入效果。具體的思路是使用PHP開發後臺,為前臺準備資料,然後使用Ajax技術作為資料的搬運工,將資料從伺服器端拉取到前端,最後使用JavaScript技術將獲取到的資料加工,並顯示在頁面上。 資料來源工

jquery.page.js實現ajax重新整理

http://blog.csdn.net/dengboblog/article/details/52699332  寫程式碼參考了這位大神的部落格。下面貼上我的程式碼。 首先是要把引入的分頁js和css新增進來。這個程式碼自己百度吧。 $.ajax({ type

Gridview各種功能+AspNetPager+Ajax實現重新整理儲存過程

儲存過程:     GetProductsCount1:                                          CREATE PROCEDURE GetProductsCount1 AS                            

ajax重新整理實現 帶例項呦

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePat

Bootstrap V3.0 Ajax重新整理實現 附程式碼

/** * Created by wangpai on 2015/11/3. */ var cnf_id = 0; var total=0; var tuple_num=15; var offset=0; var now=1; //pageAjax後更新now var pre=1; var next=1

Bootstrap Paginator外掛+ajax 實現動態重新整理

之前做分頁想過做淘寶的那個,但是因為是後臺要求不高,就Bootstrap Paginator外掛感覺還蠻容易上手,所以就選了它。 Bootstrap Paginator分頁外掛下載地址: 1.這是需要分頁的頁面放的 js函式: <span style="font-

淺談TP5的ajax重新整理

簡單說一下如何進行TP5的ajax無重新整理分頁吧,這個功能實現的方法有千百種,或許我提供的這一種並不是最好的,但確實是很實用的。 以下的例子會使用TP5自帶的分頁類來實現,無任何修改。 首先來一段後臺查詢資料的程式碼,查詢出相關的資料     $list = Load

spring mvc + ajax實現重新整理下載檔案

JQuery的ajax函式的返回型別只有xml、text、json、html等型別,沒有“流”型別,所以我們要實現ajax下載,不能夠使用相應的ajax函式進行檔案下載。但可以用js生成一個form,用這個form提交引數,並返回“流”型別的資料。在實現過程中,

PHP+AJAX實現重新整理註冊(帶使用者名稱實時檢測)程式碼

很多時候,我們在網上註冊個人資訊,在提交完頁面後,總得等待頁面重新整理來告訴我們註冊是否成功,遇到網路差的時候,如果註冊了一大串的東西,在經過漫長的等待頁面重新整理後,得到的確是“您的使用者名稱已被使用”或XXXXXXX不合法,我想大家的心情一定特別不爽,今天就介紹個AJA

關於Ajax重新整理技術的一些研究 c#

小弟新手,求大神有更好的解決方案,指教下~ 以前做專案,用過GridView的重新整理分頁,也用過EasyUI的封裝好的分頁技術,最近在老專案的基礎上加新功能,迫於需求,自己沒事琢磨了個Ajax無重新整理分頁技術, 也在百度看了下, 寫的都不是很系統,在這裡寫個系統的,簡單的,方便大家研究下。 系統支

Echats結合Ajax實現重新整理實時投票

第一步:前臺頁面(使用Ajax獲取資料初始化顯示投票現狀並實時更新顯示):<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <t

Laravel 5.1之Ajax重新整理

ajax無重新整理分頁的優點: 1、區域性重新整理 減輕壓力 2、美觀 提高使用者體驗 php程式碼: /* @Laravel框架 @Ajax無重新整理分頁(簡單7步驟) */ public fu

如何使用ajax實現重新整理上傳

詳細程式碼如下 9.upload.html <!DOCTYPE HTML> <html> <head> <meta http-equiv="Cont