Jquery+php+mysql实现上拉加载更多,后端CI,超详细,有示例(其实就是ajax无刷新分页)
来源:互联网 发布:淘宝修改中差评工作室 编辑:程序博客网 时间:2024/06/09 18:31
来吧,今天不玩虚拟机了,改代码了,今天在公司做了个小东西挺有意思,上拉加载更多,用ajax实现的,不复杂,关键的一两个点想明白了就通了。不多说了,这会还在公司呢.......快快上代码:
前端代码:
/**** @author By Shiva*** Created *//*需要jquery支持哦*/<script type="text/javascript">//Let's Go$(function(){ /*起始页数,每页显示数据已经在后台写死*/ var curPage = 1; /*需要查询的数据类型,比如是新闻,还是公告,呵呵*/ var newsType = 1; $(window).on('scroll',function(){/*判断当前浏览器高度,滚动条碰到时触发*/ if($(window).scrollTop()>=$(document).height()-$(window).height()){ /*当前选中的链接会有一个class样式,根据这个来抓取当前的type值*/ var cid = $(".cur").attr("type"); /*如果ajax没有请求到数据直接return*/ if($(".loading").length) return; /*每触发一次就给当前页数加 1*/ curPage++; /*给后端发送需要的数据*/ var postData = { newsType:cid, page:curPage, }; $.post("ajax", postData, function(response){ $('#info').html("<div class='loading'>正在加载,请稍后...</div>"); /*判断是否有数据*/ if (response.news.length) { var datastr = ''; for(var i in response.news){ datastr += '需要拼接的数据'; } /*将数据追加到对应的元素标签下*/ $('对应的元素标签').append(datastr); } else { /*前端需要显示的地方自己去写一个div id=info*/ $('#info').html("<div class='loading'>没有更多内容</div>"); setTimeout(function(){ if($(".loading").length) $('#info').html(''); },800) } }, 'json'); } }); });</script>
后端代码(这里是基于CI框架的后端方法,其实都是相通的):
<?phppublic function ajax(){ /*接收前端发送过来的数据*/ $page = $this->input->post("page"); $newsType = $this->input->post("newsType");/*后端加载数据模型*/ $this->load->model('news_model'); /*每页显示数据量*/ $perPage = 10; /**分页相关计算/ $recordCount = $this->news_model->getCount($newsType, ""); $pageCount = ceil($recordCount / $perPage); $news = array(); if ($page <= $pageCount) { if ($page < 1) $page = 1; /*查询组装自己的数据*/ $news = $this->news_model->listAll($page, $perPage, $newsType, "", 1, time()); foreach($news as $k=>$n) { $news[$k]['create_time'] = date('Y-m-d', $n['create_time']); } } /*给前端返回数据*/ echo json_encode(array('news'=>$news));}
ok,到这里就结束了,没什么多余要说的,要细细看一下我前面js里的那个 if($(".loading").length) return;这个其实挺重要的,控制了是否请求到了数据的操作,同时当没有数据的时候也会停止发送ajax请求,就我个人来说是很不错的一个判断。当然了我这里的需要很简单,只是输出文字而已。如果你需要上拉加载图片什么的,建议去使用懒加载。写代码嘛,先手写原生的来,再去搞插件。
阅读全文
0 0
- Jquery+php+mysql实现上拉加载更多,后端CI,超详细,有示例(其实就是ajax无刷新分页)
- AJAX + PHP + MYSQL 实现无刷新分页
- jQuery+AJAX实现无刷新分页滚动下拉加载
- jquery ajax php mysql 无刷新分页 demo
- SwipeRefreshLayout下拉刷新与上拉加载更多,分页加载
- php+ajax+jquery 实现无刷新分页以及js缓存
- 超简单的 listview的第三方控件PullToRefreshListView 上拉刷新,下拉加载更多,分页加载
- listview下拉刷新 上拉(滑动分页)加载更多
- listview下拉刷新 上拉(滑动分页)加载更多
- listview下拉刷新 上拉(滑动分页)加载更多
- listview下拉刷新 上拉(滑动分页)加载更多
- listview下拉刷新 上拉(滑动分页)加载更多
- istview下拉刷新 上拉(滑动分页)加载更多
- listview下拉刷新 上拉(滑动分页)加载更多
- listview下拉刷新 上拉(滑动分页)加载更多
- XListView 下拉刷新 上拉分页加载更多
- php ajax jquery 无刷新分页
- jQuery+Ajax+PHP无刷新分页
- C++ Sort()用法详解
- spring-data-redis用配置类连接时,抛异常Cannot get Jedis connection; nested exception is java.lang.NullPointerE
- 类_接口_抽象类的练习
- EasyUI入门3 datagrid部分样式设置(颜色,对齐方式)
- 唠一唠Linux系统入门的方法和经验
- Jquery+php+mysql实现上拉加载更多,后端CI,超详细,有示例(其实就是ajax无刷新分页)
- 平衡二叉树
- 【转】SAP地产业正青春
- 读取流的服务类
- host-only模式,主机能ping通虚拟机,虚拟机无法ping通主机解决办法
- spring-data-redis 操作
- mysql主从复制出现connecting的其它情况
- *.pro、*.pri、*.prf、*.prl等四种文件
- 2017-07-27 小算法工程师的成长之路