ホームページ  >  記事  >  バックエンド開発  >  非リフレッシュページングのPHP+Ajax実装方法と実装例を詳しく解説

非リフレッシュページングのPHP+Ajax実装方法と実装例を詳しく解説

墨辰丷
墨辰丷オリジナル
2018-06-04 10:00:442100ブラウズ

この記事では、リフレッシュ不要のページングを実現するための PHP + Ajax の方法を主に紹介し、リフレッシュ不要のページングを実現するための PHP と Ajax の組み合わせの具体的な手順と関連テクニックを詳細に分析します。読者が参照用にダウンロードできるデモ ソース コード付きです。必要な方は

を参照してください: ここで使用されているクラス ライブラリの一部は、記事の長さを短くするために、以前の記事でソース コードを見つけることができます。 、リンクが表示されます。

この記事では、リフレッシュ不要のページングの 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クラスライブラリの分析と使用例」にあります。

この固定ページでは「データを読み込んでいます...」とだけ表示され、データはありません。このとき、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(&#39;fpage&#39;); // 获取 fpage 对象
    // 如果缓存中存在数据,那么直接从缓存中读取;如果不存在数据,那么就从数据库中读取,并把数据存入缓存
    if (typeof(cache[pageNum])==&#39;undefined&#39;) {
      var ajax = Ajax();
      ajax.get(&#39;article.php?page=&#39;+pageNum, function(data){
        fpage.innerHTML = data; // fpage对象的内容是从 article.php 中取来的
        cache[pageNum] = data;
      })
    } else {
      fpage.innerHTML = cache[pageNum];
    }
  }
  setPage(1); // 默认执行
</script>

上記のコードを注意深く読むと、次の現象がわかります。

1. setPage(pageNum) は、データベースからデータを抽出する JS 関数インターフェイスです。 Ajax は、article .php ファイルを介してデータを取得します。

3.article.php?page=xx、xx は取得するページ番号のデータ、
setPage(1): は最初のページのデータを取得します。 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 &#39;./config.inc.php&#39;;
$m = new Model();
$page = new ajaxPage($m->total(&#39;article&#39;),20); // $m->total(&#39;article&#39;) 获取 article 表的记录数;10为每页显示十条
$result = $m->fetchAll(&#39;article&#39;, &#39;*&#39;, &#39;&#39;, &#39;&#39;, $page->limit); // 取出数据,^_^,很方便吧
echo &#39;<table align="center" border="1" width="1100" style="border-collapse:collapse;font-size:14px;" bordercolor="#666">&#39;;
echo &#39;<caption><h1>华强电子网资讯</h1></caption>&#39;;
echo &#39;<tr height="25"><th>ID</th><th>Title</th><th>Author</th><th>Source</th><th>Date</th></tr>&#39;;
foreach ($result as $v) {
  echo "<tr height=&#39;21&#39;><td align=&#39;center&#39;>{$v[&#39;id&#39;]}</td><td>{$v[&#39;title&#39;]}</td><td align=&#39;center&#39;>{$v[&#39;author&#39;]}</td><td align=&#39;center&#39;>{$v[&#39;source&#39;]}</td><td align=&#39;center&#39;>{$v[&#39;date&#39;]}</td></tr>";
}
echo &#39;<tr><td align="right" colspan="5">&#39;.$page->fpage().&#39;</td></tr>&#39;;
echo &#39;</table>&#39;;
?>

article.phpで接続されているデータは、前回の記事で華強電子網から取得した情報データです。比較的データが大きいため、article.sqlファイルを添付します。誰もがテストできるようにコード パッケージをダウンロードします。

静的ページindex.htmlに表示されるデータは、article.phpファイル内のエコーコードです。

コード ファイル内の config.inc.php ファイルは主に、データベース ユーザー名、データベース パスワード、ホスト...、データベース接続クラス ライブラリ (Db.class.php)、データベース操作クラス ライブラリ (モデル) などのいくつかの定数を定義します。 .class .php) の使用方法については、記事「PHP の一般的な PDO クラス ライブラリの例の分析」を参照してください。


プログラムのレンダリング:

下の図は注目すべき箇所を示しています

このようにして、Ajaxの非リフレッシュページングが完成します。プログラム内には説明していない ajaxPage.class.php もありますが、実はこの ajaxPage クラスライブラリの使い方は一般的なページングクラスライブラリと同じです。

つまり: $page = new ajaxPage (レコードの総数、ページごとの表示数);

概要: 上記がこの記事の全内容です。皆さんの学習に役立つことを願っています。

関連する推奨事項:

PHP はログイン確認コード関数と呼び出しメソッドを実装します


php

ファイルアップロードのバックエンド処理のヒント
PHP は Web サイト内の記事の最初の画像を取得します略語として スケッチの仕方


以上が非リフレッシュページングのPHP+Ajax実装方法と実装例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。