Home > Backend Development > PHP Tutorial > How to implement refresh-free paging function using PHP+Ajax

How to implement refresh-free paging function using PHP+Ajax

墨辰丷
Release: 2023-03-27 06:32:02
Original
1611 people have browsed it

This article mainly introduces the refresh-free paging function implemented by PHP Ajax. It 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 in need can refer to

. The details are as follows:

Note: Some of the class libraries used in this article can find their source codes in previous articles. I will include them in the article. Indicate the location of the link. In order to shorten the length of the article, we apologize for the inconvenience caused to reading.

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 And 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>

<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 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 a JS function interface for extracting data from the database;
2. Ajax obtains data through the article.php file;
3. article.php?page=xx, where xx is what is to be obtained The page number data,
setPage(1): is to get the 1st page data;
setPage(2): is to get the 2nd page data;
setPage(100): is to get the 100th page data;
......
So, how to get data from the 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 grabbed 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).

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


Related recommendations:

Simple implementation of AjaxNo refresh pagingEffect

##php ajaxNo refresh paging, support id positioning sample code

Simple AjaxNo refresh pagingEffect_AJAX related


##

The above is the detailed content of How to implement refresh-free paging function using PHP+Ajax. 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