The example in this article describes how to implement refresh-free paging with PHP Ajax. Share it with everyone for your reference, the details are as follows:
Note: The source codes of some of the class libraries used here can be found in previous articles, so in order to shorten the length of the article, the links are indicated.
This article explains: 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 and display it in the background through Ajax, and eliminate the blank state that appears while waiting for the page to be loaded;
2. So, the Ajax non-refresh page runs 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> <div id="fpage">数据加载中...</div> </body> </html>
In the code list, we have loaded an Ajax class library. This class library can be found in the previous article "Analysis of a simple Ajax class library and usage examples"
In this static page, only "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('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>
Read the above code carefully and 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 the page number data to be obtained,
setPage(1): Gets the data on page 1;
setPage(2): Gets the data on page 2;
setPage(100): Gets the data on page 100;
…
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 './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>'; ?>
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 "PHP's PDO Common Class Library Example Analysis", with usage instructions.
Program renderings:
The picture below marks the places to pay attention to
In this way, Ajax non-refresh paging 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 the general paging class library.
That is: $page = new ajaxPage (total number of records, number displayed per page);
For specific details, please download the code and read it.
Click here for the complete example codeDownload from this site.
Readers who are interested in more PHP-related content can check out the special topics of this site: "Summary of PHP ajax skills and applications", "Summary of PHP operations and operator usage", "Summary of PHP network programming skills", "Introduction to PHP basic syntax tutorial", "Summary of PHP office document skills (including word, excel, access, ppt)", "php date and time usage summary", "php object-oriented programming introductory tutorial", "php string (string) usage summary" , "php mysql database operation introductory tutorial" and "php common database operation skills summary"
I hope this article will be helpful to everyone in PHP programming.