TP5的自带分页实现AJAX的无刷新分页

TP5的自带分页实现AJAX的无刷新分页

如题,怎么实现呢    最好有具体实例

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小尤 2019-08-04 10:00:23

同学你好,同学可以尝试使用此方法:

1. php控制器判断是否为ajax请求。

1
2
3
4
5
6
7
8
9
10
11
12
13
//分页变量
$page=$articles->render();
$this->assign('page',$page);
//文章变量
$this->assign('articles'$articles);
//判断ajax请求,渲染到不同模板
if(request()->isAjax()){    
    //return $articles;
    //如果是ajax请求,则渲染到该页面
    return $this->fetch('articleList');
}else {    //否则到该页面
    return $this->fetch('articleIndex');
}

2. 负责ajax请求渲染的模板。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!-- START TABLE -->
<div class="simplebox grid740">
    <div class="titleh">
        <h3>列表</h3>
    </div>
    <table id="myTable" class="tablesorter">
        <thead>
        <tr>
            <th>#ID</th>           
            <th>状态</th>
            <th>操作</th>
        </tr>
        </thead>
        <tbody>
 
        {volist name='articles' id='article' key="k"}
        <tr>
            <td>{$k}</td>
            <td>{$article.status}</td>
            <td>
               <a href="">删除</a>
            </td>
        </tr>
        {/volist}
        </tbody>
    </table>
    {$page}
</div>
<!-- END TABLE -->

3.正式访问页面执行ajax请求。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{literal}
<script>
    $(function () {    
        //给id为list的元素代理绑定下面所有的a元素"click"事件
        $("#list").on("click",".pagination a",function() {        
        //取a标签的href即url发送ajax请求
            $.get($(this).attr('href'),function(html){        
                //返回数据输出到id为list的元素中
                $('#list').html(html);
            });            
            //阻止默认事件和冒泡,即禁止跳转
            return false;
        })
    })
</script>
{/literal}
<div id="list"></div>
    <!-- START TABLE -->

祝学习愉快!

  • 提问者 慕前端1555222 #1
    那个后端取得的数据使用limit还是paginate方法啊 能不能写出来
    2019-08-04 10:09:54
  • 好帮手慕小尤 回复 提问者 慕前端1555222 #2
    同学你好,使用thinkPHP中自带的paginate方法级可以。祝学习愉快!
    2019-08-04 10:57:55
  • 提问者 慕前端1555222 回复 好帮手慕小尤 #3
    你好 这个初始化要怎么办 在进入这个页面的时候调用方法初始化吗?还是直接调用前台的AJAX。我直接开启有AJAX的HTML页面会报错说list未定义 必须调用这个后台方法才行 $page=$articles->render(); $this->assign('page',$page);这样渲染的会出现<ul class="pagination"><li class="disabled"><span>&laquo;</span></li> <li class="active"><span>1</span></li><li><a href="/index/index/detail/id/13.html?page=2">2</a></li><li><a href="/index/index/detail/id/13.html?page=3">3</a></li><li><a href="/index/index/detail/id/13.html?page=4">4</a></li><li><a href="/index/index/detail/id/13.html?page=5">5</a></li> <li><a href="/index/index/detail/id/13.html?page=2">&raquo;</a></li></ul> 而不是页码。。。。
    2019-08-04 11:40:44
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码