php网页浏览功能的具体实现(php实现网页上一页下一页翻页过程详解)
类别:编程学习 浏览量:1211
时间:2022-01-20 00:34:02 php网页浏览功能的具体实现
php实现网页上一页下一页翻页过程详解前言
这几天做项目因为数据太多,需要对信息进行上下翻页展示,就自己写了翻页的代码
大致功能就是页面只显示几条信息,按上一页、下一页切换内容,当显示第一页时上一页和首页选项不可选,当页面加载到最后一页时下一页和尾页选项不可选
具体效果如下:
实现代码
1)原生PHP方法
先说一下总思路吧,首先我们要查询所有符合条件需要进行分页的总数据,计算展示的总页数。
然后获取当前显示的是第几页信息,用当前页数每页数据条数表示为总数据的第几条,再根据限制条件查询出当前页所需显示出来的数据。将每一条数据echo替换HTML结构内容中,最后显示出来
关于分页的限制条件很简单,只要查询到当前页为第1页时,首页和上一页选项跳转链接都固定在第一页同时设置选项disabled不可选,尾页也是相同的步骤。
具体代码如下:
当前页cPage需要传过来,我的办法是初始cPage=0
list.php*
|
<a href= "listmore.php?cPage=0" rel= "external nofollow" rel= "external nofollow" class = "pull-right" >更多>></a> $row = $table ->fetch()每次读取一条信息,得到的是一个索引数组,代码里的 $row [ 'id' ]表示 $row 里面名为id的值,也可表示为 $row .id |
connect.php(连接数据库)
|
<?php $link = new PDO( "mysql:host=localhost;port=3306;dbname=db" , "root" , "" ); $link ->query( "set names utf8" ); |
listmore.php
|
<ul id= "list" class = "media-list" > <?php include_once ( 'connect.php' ); $result = $link ->query( "select * from news" ); $total = $result ->rowCount(); //查询出来符合条件的总数 $pages = ceil ( $total /4); //分页的总页数 $num = 4; //每页显示的数据条数 $cPage = $_GET [ 'cPage' ]; //获取当前是显示的第几页 $start = $cPage * $num ; //第一条数据 $table = $link ->query( "select * from news order by id desc limit {$start},$num" ); $link = null; //销毁 while ( $row = $table ->fetch()){ //每次读出一条数据,赋给$row //插入多行文本,把值替换掉 echo <<<_ <li class = "media" > <a href= "detail.php?id={$row['id']}" > <img class = "pull-left" src= "{$row['src']}" > <figcaption> <h4><span class = "title" >{ $row [ 'title' ]}</span> <span class = "news-date" >{ $row [ 'time' ]}</span></h4> <p>{ $row [ 'content' ]}</p> </figcaption> </a> </li> _; } ?> </ul> |
上下翻页:
|
< li class = "page text-center" > < ul class = "pagination" id = "page" > < li data-i = "0" id = "index" class="<?php if ($cPage==0) echo 'disabled'; ?>">< a href = "listmore.php?cPage=0" >«首页</ a ></ li > < li data-i = "1" class="<?php if ($cPage==0) echo 'disabled';?>">< a href="listmore.php?cPage=<?php echo $cPage>0?$cPage-1:0?>"><上一页</ a ></ li > < li data-i = "2" class="<?php if ($cPage==$pages-1) echo 'disabled'?>">< a href="listmore.php?cPage=<?php echo $cPage==($pages-1)?$pages-1:$cPage+1?>">下一页></ a ></ li > < li data-i = "3" id = "end" class="<?php if ($cPage==$pages-1) echo 'disabled'?>">< a href="listmore.php?cPage=<?php echo $pages-1?>">尾页»</ a ></ li > < li class = "disabled" > < a href = "##" id = "total" ><? php echo ($cPage+1)?>/<? php echo "$pages"?></ a > </ li > </ ul > </ li > |
2)ajax方法
HTML代码,展示信息装在panel-body里面
|
< li class = "panel-body" id = "content" > < ul id = "list" class = "media-list" > </ ul > </ li > < li class = "page text-center" > < ul class = "pagination" id = "page" > < li data-i = "0" id = "index" class = "disabled" >< a href = "##" >«首页</ a ></ li > < li data-i = "1" class = "disabled" >< a href = "##" ><上一页</ a ></ li > < li data-i = "2" >< a href = "##" >下一页></ a ></ li > < li data-i = "3" id = "end" >< a href = "##" >尾页»</ a ></ li > < li class = "disabled" > < a href = "##" id = "total" ></ a > </ li > </ ul > </ li > < template id = "temp" > //引用模板 < li class = "media" > < a href = "detail.html?id={id}" > < img class = "pull-left" src = "{src}" > < figcaption > < h4 >< span class = "title" >{title}</ span > < span class = "news-date" >{date}</ span ></ h4 > < p >{content}</ p > </ figcaption > </ a > </ li > </ template > |
JS代码:
|
var html=$( '#temp' ).html(); var curPage=0,pages=0; $.getJSON( 'php/pages.php' , function (res) { pages=Math.ceil(res/4); /*获取信息的总页数*/ }); function show(cPage){ //替换每一页的内容 $.getJSON( 'php/listmore.php' ,{cPage:cPage}, function (json) { var str= '' ; $( '#list' ).empty(); json.forEach( function (el) { str+=html.replace( '{id}' ,el.id).replace( '{title}' ,el.title).replace( '{src}' ,el.src) .replace( '{content}' ,el.content).replace( '{date}' ,el.time); }); $( '#list' ).html(str); }); $( '#total' ).html((curPage+1)+ '/' +pages); } setTimeout( function () { show(0); },100); $( '#page' ).on( 'click' , 'li' , function () { //上下翻页,翻遍当前页的值 var i=$( this ).data( 'i' ); //jquery里特有的获取data-*属性的方法 switch (i){ case 0:curPage=0; break ; case 1:curPage>0?curPage--:0; break ; case 2:curPage<(pages-1)?curPage++:pages-1; break ; case 3:curPage=pages-1; break ; } show(curPage); disabled(curPage); }) function disabled(curPage) { //关于临界值禁止选择 if (curPage==0){ /*当前页为第一页,首页和上一页选项禁止点击*/ $( '#index' ).addClass( 'disabled' ).next().addClass( 'disabled' ); $( '#end' ).removeClass( 'disabled' ).prev().removeClass( 'disabled' ); } else if (curPage==pages-1){ $( '#index' ).removeClass( 'disabled' ).next().removeClass( 'disabled' ); $( '#end' ).addClass( 'disabled' ).prev().addClass( 'disabled' ); } else { /*当前页为最后一页,尾页和下一页选项禁止点击*/ $( '#index' ).removeClass( 'disabled' ).next().removeClass( 'disabled' ); $( '#end' ).removeClass( 'disabled' ).prev().removeClass( 'disabled' ); } } |
connect.php(连接数据库)
|
<?php $link = new PDO( "mysql:host=localhost;port=3306;dbname=db" , "root" , "" ); $link ->query( "set names utf8" ); |
pages.php(获取总页数)
|
<?php include_once ( 'connect.php' ); //连接数据库 $result = $link ->query( "select * from news" ); $row = $result ->rowCount(); echo $row ; |
listmore.php(获取数据库里的数据)
|
<?php include_once ( 'connect.php' ); $num = 4; //每一页显示的数据条数 $cPage = $_GET [ 'cPage' ]; //获取当前页 $start = $cPage * $num ; //计算当前页显示的第一条数据的数目 /*从表中查询从开始$start的一共$num条数据*/ $result = $link ->query( "select * from news order by id desc limit {$start},$num" ); $link = null; while ( $row = $result ->fetch()){ /*每一次读取一条数据*/ $json []= $row ; /*把数据赋给json数组*/ } echo json_encode( $json ); /*把json数组以json格式返回给HTML*/ |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://www.cnblogs.com/xyyl/p/10969709.html
您可能感兴趣
- phpstudy服务器怎么设置(PHPStudy打开网页很慢的原因及解决方案)
- phpredis常用方法(PHP针对redis常用操作实例详解)
- php多维数组怎么转换json(php实现的数组转xml案例分析)
- php 支付系统(php 实现银联商务H5支付的示例代码)
- php运行环境的搭建方法(php集成开发环境详解)
- php中如何打开文件读文件(PHP通过文件保存和更新信息的方法分析)
- php常用加密技术(php用户名的密码加密更安全的方法)
- php执行超时怎么办(PHP错误提示It is not safe to rely on the system……的解决方法)
- php上传文件的要求(PHP 文件上传限制问题)
- phpstudy安装包打不开(phpStudy访问速度慢和启动失败的解决办法)
- php 常见的三种缓存(PHP进阶学习之垃圾回收机制详解)
- php生成安全随机数(PHP随机数函数rand与mt_rand的讲解)
- php 处理html表单(PHP使用HTML5 FormData对象提交表单操作示例)
- php7语法代码规范(PHP7新功能总结)
- phpcurl请求能在日志里记录吗(php使用curl模拟多线程实现批处理功能示例)
- phpsession方法(PHP SESSION机制的理解与实例)
- 菲律宾特产(菲律宾特产最值得买回国)
- 越南特产(越南特产首饰)
- TVB负评王连续挑战警察角色《使徒行者3》中将饰演卧底(TVB负评王连续挑战警察角色使徒行者3中将饰演卧底)
- 《精英律师》剧照首曝光,实力演员飙戏,演绎律政职场百态(精英律师剧照首曝光)
- 靳东领衔打造高精职场 新丽出品《精英律师》曝定妆照(靳东领衔打造高精职场)
- 靳东新剧《精英律师》定档,众星云集,这剧可追(靳东新剧精英律师定档)
热门推荐
- SQL Server数据类型有哪些
- python3 代码解读(Python3列表内置方法大全及示例代码小结)
- laravel数据绑定(laravel-admin表单提交隐藏一些数据,回调时获取数据的方法)
- apache持续连接时间设置(Apache增加最大连接数的方法)
- 阿里云服务器清除密码(阿里云服务器忘记密码怎么办?阿里云ECS密码重置图文教程)
- pythonlambda详解(Python的条件表达式和lambda表达式实例)
- 如何修改serv-u主页信息(Serv-U FTP与AD完美集成方案详解)
- php网页浏览功能的具体实现(php实现网页上一页下一页翻页过程详解)
- sql根据条件查出两条一样的数据(SQL中遇到多条相同内容只取一条的最简单实现方法)
- dedecmsv6如何安装(dedecms 下载地址加迅雷专用链的操作方法 比较全)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9