PHPCMS的模板调用功能还是很好用的,可以用在ajax调用数据的场景,这样可以减少代码的写作量,从而实现手机端”点击加载更多”的功能
1、list.html列表页前端页面核心内容
<div id="list">
{pc:content action="lists" catid="$catid" num="12" order="listorder desc,inputtime desc" page="$page"}
{loop $data $r}
//这个地方为实际需要展示的数据内容,如调用{$r[title]}
{/loop}
{/pc}
</div>
<div class="page_m"><span id="more" class="btn">点击加载更多</span></div>
<script>
$(function(){
var page = 2;//从第2页开始
$("#more").click(function(){
var appPath = "{APP_PATH}";
var catid = "{$catid}";//当前列表页的栏目ID
htmlobj = $.ajax({url:""+appPath+"index.php?m=content&c=index&a=lists&ajax=1&catid="+catid+"
&page="+page,async:false});
if(htmlobj.responseText.toString().trim() == "empty"){
$("#more").html("已全部加载");
}else{
$("#list").append(htmlobj.responseText);
}
//分页+1
page += 1;
})
})
</script>
2、在/phpcms/modules/content/lists方法里,只需加上这个内容即可
if(intval($_GET['ajax']) == 1){
$page = intval($_GET['page']);
$template = 'ajax_news';
}
include template('content',$template);//在这行的上面加上
3、ajax_news.html模板里的内容这样写即可,写法和list.html模板里的写法一样
{pc:content action="lists" catid="$catid" order="listorder desc,inputtime desc" num="12" page="$page"}
{if !empty($data)}
{loop $data $r}
//这个地方为实际需要展示的数据内容,如调用{$r[title]}
{/loop}
{else}
empty
{/if}
{/pc}

只需要通过更改上面3个地方,即可实现在手机端“点击加载更多”的功能,希望对你有所帮助
4、后续补充:增加查询条件的功能,2020-09-08
1)前端页面, ajax查询时传到服务器的参数
<input type="hidden" id="sql" value="{php echo urlencode($sql)}" />
2)ajax里的写法
var sql = $("#sql").val();
3)服务器端
$sql = $_GET['sql'];
$sql = stripslashes($sql);

