この記事では、主に 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> <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 クラス ライブラリが読み込まれていますが、「データを読み込み中...」というメッセージのみが表示されます。データ。 。このとき、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) は、データベースからデータを抽出する JS 関数インターフェイスです。 2. Ajax は、article.php ファイルを通じてデータを取得します。
3.article.php?page=xx、xx は取得するページ番号のデータ、
setPage(1): 最初のページのデータを取得します。 setPage(2): 2 ページのデータを取得します。
setPage(100): 100 ページのデータを取得します。
...
それでは、article.php ファイルからデータを取得するにはどうすればよいでしょうか?以下のコードリストを参照してください。
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)、データベース操作クラス ライブラリ (モデル.php)。
プログラムのレンダリング:
下の図は、注意を払うべき場所を示しています。
このようにして、Ajaxの非リフレッシュページングが完成します。プログラム内には説明していない ajaxPage.class.php もありますが、実はこの ajaxPage クラスライブラリの使い方は一般的なページングクラスライブラリと同じです。
つまり:
$page = new ajaxPage(记录总数, 每页显示数);
関連する推奨事項:
リフレッシュページングなし効果
リフレッシュページングなし、サポート ID の位置決めサンプルコード
更新ページングなしEffect_AJAX 関連
以上がPHP+Ajaxを利用した非リフレッシュページング機能の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。