php7教學欄位介紹留言板開發中的Ajax分頁
推薦(免費):php7教學
有了基礎頁面的支撐,想要提高頁面的使用者體驗,那麼非同步的資料載入目前來說是最好的處理方式了。 Ajax分頁是練手的最佳應用場景,運用到的知識點,在上課老友記之PHP7留言板開發(Ajax異步提交)已經有了一定的介紹,這裡就不再敖述,如有明白請看上節內容。
教學分解
-
1、定義
JavaScript具有基於函數的作用域,只要定義了,目前頁面的是全域可用的,標識就是gotopage(){}
函數gotopage
。 -
2、Ajax非同步操作
上課的內容,這裡最要是非同步請求的時候注意是GET
方式,ajax.php
#是非同步請求服務端需要處理的邏輯文件,接收使用者翻頁請求,回傳回應頁數的資料即可(當然其他格式的內容就行,例如JSON,這裡就不講解)。 3、JS列印資料
innerHTML
#在指定的頁面區域列印翻頁資料<ul id="list_box"><u></u></ul>
,這裡的樣式結構是要在ul標籤內輸出內容,所以用JS選擇器document.getElementById("list_box")
,取得ul標籤的對象,然後運用其中的innerHTML
屬性賦值內容,完成我們想要的結果document.getElementById("list_box").innerHTML = '伺服器返回的資料';
4、JS循環
for
的運用,遍歷所有頁碼並標識目前頁碼
用選擇器取得所有的頁面物件var pageno = document.getElementsByClassName('pageno');
計算總頁碼數量pageno.length
#for
循環遍歷直到匹配到目前使用者請求的page
頁碼數即當前頁,匹配成功就為目前頁數添加樣式(標識目前請求成功的頁數)。
本教學基於老友記之PHP7留言板開發(分頁)內容上改變。
HTML程式碼list.php
<?php include 'config.php'; $page = !empty($_GET['page'])?intval($_GET['page']):1; $keyword = !empty($_GET['keyword'])?strip_tags($_GET['keyword']):''; $pagesize = 6; // 统计总记录数,便于计算出总页数 if(!empty($keyword)){ $sql = "SELECT * FROM feedback WHERE name LIKE '%{$keyword}%'"; }else{ $sql = "SELECT * FROM feedback"; } $result = mysqli_query($mysqli, $sql); $total = mysqli_affected_rows($mysqli); $total_page = ceil($total/$pagesize); // 进一法取整获取总页数 // 开始分页查询,根据page计算偏移量 $offset = ($page - 1) * $pagesize; if(!empty($keyword)){ $sql = "SELECT * FROM feedback WHERE name LIKE '%{$keyword}%' LIMIT {$offset}, {$pagesize}"; }else{ $sql = "SELECT * FROM feedback LIMIT {$offset}, {$pagesize}"; } $result = mysqli_query($mysqli, $sql); $lists = array(); while($rows = mysqli_fetch_array($result)){ $lists[] = $rows; } ?> nbsp;html> <meta> <title>异步翻页+列表带搜索功能_留言板_科科分享</title> <!-- 2.新建css样式文件并根据效果图编写css代码 --> <link> <script> function gotopage(page, keyword){ if(page<0){ page = 1; } // 创建 XMLHttpRequest 对象 var ajax, url; if(window.XMLHttpRequest){ ajax = new XMLHttpRequest(); }else{ // 兼容Internet Explorer(IE5 和 IE6)使用 ActiveX 对象 ajax = new ActiveXObject("Microsoft.XMLHTTP"); } url = 'page.php?page=' + page + '&keyword=' + keyword; ajax.open('GET', url, true); ajax.send(); ajax.onreadystatechange = function(){ // 获取服务器响应状态码 if(ajax.readyState == 4 && ajax.status==200){ // 获取服务器返回的响应返回的数据 var retdata = ajax.responseText; // 如果返回的时候不为空的时候,就输出 if(retdata){ // 这里是将异步请求的数据 在指定区域(list_box)展示给用户看 document.getElementById("list_box").innerHTML = retdata; // 最后将页面中的定位当前分页数,告诉用户当前在哪个分页 // 这里相对逻辑会复杂点,慢慢领会 // 第一步获取所有分页数的集合 var pageno = document.getElementsByClassName('pageno'); // 这里用到for循环遍历 从多个分页的集合获取当前用户点击的那个分页链接并添加样式active for(var i=0; i<pageno.length; i++){ pageno[i].className = 'pageno'; // parseInt(i)+1意思是当前分页, if(parseInt(i)+1 == page){ pageno[i].className = 'pageno active'; } } } } } } </script> <!-- 工作区,呈现给用户看的 --> <!-- 1.开始搭建脚手架 --> <p> </p><p> </p><h3 id="留言板">留言板</h3> <h5 id="LIST">LIST</h5> <p> </p><p> </p>
- 姓名: 联系方式: 内容:
非同步分頁程式碼page.php
<?php include 'config.php'; $page = !empty($_GET['page'])? intval($_GET['page']):1; $keyword = !empty($_GET['keyword'])?addslashes(strip_tags($_GET['keyword'])):''; $pagesize = 6; // 开始分页查询,根据page计算偏移量 $offset = ($page - 1) * $pagesize; if(!empty($keyword)){ $sql = "SELECT * FROM feedback WHERE name LIKE '%{$keyword}%' LIMIT {$offset}, {$pagesize}"; }else{ $sql = "SELECT * FROM feedback WHERE 1 LIMIT {$offset}, {$pagesize}"; } $result = mysqli_query($mysqli, $sql); $lists = array(); $list = ''; while($rows = mysqli_fetch_array($result)){ $list .= "<li>姓名:". $rows['name']." 联系方式:". $rows['contact']." 内容:".$rows['content'].""; } echo $list; exit;
總結
以上是PHP7留言板開發之 Ajax分頁的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版
中文版,非常好用

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具