この記事では、主に PHP+Ajax で実装されたリフレッシュフリーのページング機能を紹介し、具体的な例に基づいてデータベースを読み取ってページングで表示するための PHP+Ajax の関連実装テクニックを pdo 操作クラスを通じて分析します。デモのソース コードを読者が参照用にダウンロードできるようにします。必要な友人はそれを参照できます。これがすべての人に役立つことを願っています。
注: この記事で使用されている一部のクラス ライブラリのソース コードは、以前の記事に記載されています。記事の長さを短くするために、記事内にリンクを記載します。読む。
この記事では、リフレッシュフリー ページングの Ajax 実装、実装原理、コード表示、およびコード ダウンロードについて説明します。
ここでいくつかの知識を説明する必要があります:
1. ページを更新せずに Ajax を使用する利点: 優れた顧客エクスペリエンスを提供し、データベースからデータを取得して Ajax を通じてバックグラウンドで表示し、表示される空白の状態を排除します。ページがロードされるのを待っている間;
2. つまり、Ajax の非更新ページは動的ページ (.php) 上で実行されるのでしょうか?それとも静的ページ (.html/.htm/.shtml) ですか?答えは次のとおりです: 静的ページ;
3. 実装原理: 動的ページから返されるデータは、フロントエンド JS スクリプト プログラムと Ajax の組み合わせを通じて取得および表示されます。
それでは、以下のコードを説明していきます。
静的ページで実行するので、まず静的HTMLページを作成します。index.htmlのコードリストは以下の通りです。
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="js/ajax.js"></script> <!-- 载入 Ajax 类库 --> <title>Ajax 实现无刷新页面</title> <style type="text/css"> body { font-size:12px; } </style> </head> <body> <p id="fpage">数据加载中...</p> </body> </html>
コードリストでは、Ajax クラスライブラリをロードしました。これは記事 http://www.jb51.net/article/82066.htm (および添付の方法) にあります。
この静的ページでは、「データを読み込んでいます...」と表示されるだけで、データはありません。このとき、Ajax を介してデータベースからデータを取得するための JS スクリプトが必要です。 JS スクリプトは次のとおりです。
<script type="text/javascript"> /** * setPage(url) 根据 url 从 article.php 中获取数据 * @param int pageNum 页码 * @return string */ var cache=new Array(); // 缓存变量,当数据被访问过之后放置在缓存中,加快访问速度 function setPage(pageNum) { var fpage = document.getElementById('fpage'); // 获取 fpage 对象 // 如果缓存中存在数据,那么直接从缓存中读取;如果不存在数据,那么就从数据库中读取,并把数据存入缓存 if (typeof(cache[pageNum])=='undefined') { var ajax = Ajax(); ajax.get('article.php?page='+pageNum, function(data){ fpage.innerHTML = data; // fpage对象的内容是从 article.php 中取来的 cache[pageNum] = data; }) } else { fpage.innerHTML = cache[pageNum]; } } setPage(1); // 默认执行 </script>
上記のコードを注意深く読むと、次の現象がわかります。
1. setPage(pageNum) は、Ajax からデータを抽出する JS 関数インターフェイスです。
3.article.php?page=xx を介してデータを取得します。xx は取得するページ番号のデータです。
setPage(2) ): 2 ページ目のデータを取得します Page data;
setPage(100): 100 番目のページのデータを取得します。以下のコードリストを参照してください。
article.php
<?php /** * $Id: article.php * author Lee. * Last modify $Date: 2012-01-21 16:53:05 $ */ require_once './config.inc.php'; $m = new Model(); $page = new ajaxPage($m->total('article'),20); // $m->total('article') 获取 article 表的记录数;10为每页显示十条 $result = $m->fetchAll('article', '*', '', '', $page->limit); // 取出数据,^_^,很方便吧 echo '<table align="center" border="1" width="1100" style="border-collapse:collapse;font-size:14px;" bordercolor="#666">'; echo '<caption><h1>华强电子网资讯</h1></caption>'; echo '<tr height="25"><th>ID</th><th>Title</th><th>Author</th><th>Source</th><th>Date</th></tr>'; foreach ($result as $v) { echo "<tr height='21'><td align='center'>{$v['id']}</td><td>{$v['title']}</td><td align='center'>{$v['author']}</td><td align='center'>{$v['source']}</td><td align='center'>{$v['date']}</td></tr>"; } echo '<tr><td align="right" colspan="5">'.$page->fpage().'</td></tr>'; echo '</table>'; ?>article.phpで接続されているデータは、前回の記事で華強電子網から取得した情報データです。データが比較的大きいため、article.sqlファイルをコードに添付します。誰でもテストできるパッケージのダウンロード。
静的ページindex.htmlに表示されるデータは、article.phpファイル内のエコーコードです。
コード ファイル内の config.inc.php ファイルは主に、データベース ユーザー名、データベース パスワード、ホスト...、データベース接続クラス ライブラリ (Db.class.php)、データベース操作クラス ライブラリ ( Model.class.php) の使用方法については、記事 http://www.jb51.net/article/82063.htm を参照してください。
プログラムのレンダリング:
下の図は、注意を払うべき場所を示しています。
このようにして、Ajaxの非リフレッシュページングが完成します。プログラム内には説明していない ajaxPage.class.php もありますが、実はこの ajaxPage クラスライブラリの使い方は一般的なページングクラスライブラリと同じです。つまり:
$page = new ajaxPage(记录总数, 每页显示数);
Ajax no-refresh ページング効果の簡単な実装
php Ajax no-refresh ページング、サポート ID 位置決めサンプル コード
JQuery+Ajax no-refresh ページング サンプル コード
以上がPHP と Ajax は非リフレッシュ ページング機能のコード共有を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。