PHP and Ajax implement code sharing for non-refresh paging function

小云云
Release: 2023-03-20 08:00:02
Original
1421 people have browsed it

This article mainly introduces the non-refresh paging function implemented by PHP+Ajax, and analyzes the related implementation techniques of PHP+ajax through the pdo operation class to read the database and display it in paging based on specific examples. It also comes with demo source code for readers to download. For reference, friends who need it can refer to it. I hope it can help everyone.

Note: The source code of some of the class libraries used in this article can be found in previous articles. I will indicate the link in the article. In order to shorten the length of the article, the resulting reading We apologize for the inconvenience.

This article explains the Ajax implementation of refresh-free paging, implementation principles, code display, and code download.

Some knowledge needs to be explained here:

1. The benefits of Ajax without refreshing the page: Provide a good customer experience, obtain data from the database in the background through Ajax and display it, and eliminate the need to wait for the page to load The blank state that appears;

2. So, is the Ajax non-refresh page running on a dynamic page (.php)? Or a static page (.html/.htm/.shtml)? The answer is: static page;

3. Implementation principle: The data returned from the dynamic page is obtained and displayed through the combination of front-end JS script program and Ajax.

Okay, let’s explain the code below:

Since it is running on a static page, we first create a static HTML page. The code list of index.html is as follows.

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>
Copy after login

In the code list, we loaded an Ajax class library, which can be found at http://www.jb51. Found in the net/article/82066.htm article (with usage instructions)

In this static page, only a "Data loading..." will be displayed, and there will be no data. At this time, we need a JS script to obtain data from the database through Ajax. The JS script is as follows:


<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>
Copy after login

Read the above code carefully, you will find the following phenomenon:

1. setPage(pageNum) is extracted from the database JS function interface of data;
2. Ajax obtains data through article.php file;
3. article.php?page=xx, where xx is the page number data to be obtained,
setPage( 1): Get the data on page 1;
setPage(2): Get the data on page 2;
setPage(100): Get the data on page 100;
......
Then, How to get data from article.php file? Please see the code listing below.

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;;
?>
Copy after login

The data connected in article.php is the information data captured from Huaqiang Electronics Network in the previous article, because the data is relatively large. The article.sql file will be attached to the code package download for everyone to test.

The data displayed on the static page index.html is the echo code in the article.php file.

The config.inc.php file in the code file mainly defines some constants, such as: database user name, database password, host..., database connection class library (Db.class.php) and database operation class Library (Model.class.php), please refer to the article http://www.jb51.net/article/82063.htm, with usage instructions.

Program renderings:

The following figure marks the places to pay attention to.

In this way, Ajax paging without refresh is completed. There is also an ajaxPage.class.php in the program that is not explained. In fact, the usage of this ajaxPage class library is the same as that of the general paging class library.

That is:


$page = new ajaxPage(记录总数, 每页显示数);
Copy after login

Simple implementation of Ajax no refresh paging effect

php ajax no refresh Pagination, support id positioning example code

JQuery+Ajax no refresh paging example code

The above is the detailed content of PHP and Ajax implement code sharing for non-refresh paging function. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template