PHPCMS V9 实现列表页下拉加载的方法
发布日期:2018年01月06日,网站分类:网站新闻
不废话,这里直接上源代码,可能遇到的常见问题如下:
常见问题:
1、下拉无法加载
使用Google Chrome浏览器访问按F12,查看控制台中是否存在js错误。
2、下拉重复显示
请确认排序是否一致
例如:前台调用标签 Order by updatetime DESC 是否与后端php SQL查询一致。
HTML部分
<div id="lists"> {pc:get sql="SELECT * FROM `rong_sheji` Order by updatetime DESC " num="12"} {loop $data $n $r} <figure> <a href="{$r[url]}"> <div data-echo-background="{$r[thumb]}" style="background-image: url({$r[thumb]});"></div> <figcaption> <div class="right"> <h3>{$r[title]}</h3> <small>{date('Y-m-d',$r[inputtime])}</small> </div> <div class="left"> <span><i class="fa fa-heart-o"></i><small></small></span> </div> </figcaption> </a> </figure> {/loop} {/pc} </div> <div class="loadmore"> <a id="loading" href="javascript:void(0);" style="display: block;">加载完成</a> </div>
JavaScript脚本部分
$(function(){ var pager=1; /*定义开始页码*/ var controller=true; /*定义控制器,防止重复加载*/ $(window).scroll(function() { /*监听滚动事件*/ /*当内容滚动到底部时加载新的内容(注:当距离最底部100个像素时开始加载)*/ if ($(this).scrollTop() + $(window).height() + 430 >= $(document).height() && $(this).scrollTop() > 430) { $("#loading").html("正在加载").show(); /*打开加载提示*/ if(controller==true){/*如果控制器是开的*/ controller=false;/*关闭加载*/ pager=pager+1;/*当前要加载的页码*/ $.getJSON("{APP_PATH}api.php?op=sheji&page="+pager, function(data){ var i=0; $.each(data,function(r){ i++; var html='<figure><a href="'+data[r].url+'"><div data-echo-background="'+data[r].thumb+'" style="background-image: url('+data[r].thumb+');"></div><figcaption><div class="right"><h3>{$r[title]}</h3><small>{date('Y-m-d',$r[inputtime])}</small></div><div class="left"><span><i class="fa fa-heart-o"></i><small></small></span></div></figcaption></a></figure>'; /*示例 var html='<a href="'+data[r].url+'"> <img src="'+data[r].thumb+'"> <dl> <dt>['+data[r].catname+'] '+data[r].title+' - '+data[r].updatetime+'</dt> <dd>'+data[r].description+'</dd> </dl> </a>'; */ $("#lists").append(html);/*追加到列表中*/ });/*end each*/ controller=true;/*开启加载*/ $("#loading").hide(); /*关闭加载提示*/ if(i==0){ $("#loading").html("加载完成").show(); } });/*end getJSON*/ }/*end if*/ }/*end if*/ });/*end scroll*/ });/*end function*/
php接口部分
<?php #融网科技二次开发,直接取数据库表内容,单独调用字段# defined('IN_PHPCMS') or exit('No permission resources.'); $db = ''; #加载内容模型 $db = pc_base::load_model('content_model'); #重定义加载的表名 $db->table_name = 'rong_sheji'; #加载缓存中的栏目名称,注 category_content_站点ID $CATEGORYS = getcache('category_content_1','commons'); $page=isset($_GET['page'])?intval($_GET['page']):1; #判断传入的page是否存在 #查询表数据 $data = $db->select( 'status=99 ORDER BY `id` DESC LIMIT '.($page-1)*8 .' , ' . 8 .' '#根据实际情况调整where语句 ,'id,catid,title,thumb,url' #需要调取的字段,如需要全部字段则删除本段 ); #定义数组容器 $array=array(); #遍历查询到的数组,注:如不需要对 图片、时间、栏目进行转换可跳过遍历直接将$data输出 foreach ($data as $key => $value) { $array[]=array( "id"=>$value['id'], "title"=>$value['title'], "thumb"=>$value['thumb'], "url"=>$value['url'] ); } #将数组转换为json数据并输出 echo json_encode($array); ?>
关键词:PHPCMS
转载请注明来自:https://www.kufan.cn/news/45.html