【原创】thinkphp5.1 Ajax分页示例

index控制器:

$posts = PostsModel::where('course_id',$courseId)->order('sort asc')->paginate($this->coursePostList,false,[
    'type'     => 'Bootstrap',
    'var_page' => 'page',
    'path'=>"javascript:AjaxPage($courseId,[PAGE]);"
]);

前台html:
<div class="raw-page">{$posts|raw}</div>
前台js:
const AjaxPage = function(courseId,page){
    $.ajax({
        url:"{:url('listPosts')}",
        type:'post',
        dataType:'json',
        data: {"vpage":page,course_id:courseId},
        success:function(data){
            if(data.status == 1){
                $("#list_posts").html(data.message);
            }else{
                let index = layer.alert(data.message, {
                    icon: 0,
                    skin: 'layer-ext-moon'
                }, function() {
                    layer.close(index);
                });
            }
        }
    });
}
后台异步分页方法:
public function listPosts(){
    if(Request::isAjax()){
        $page = Request::param('vpage');
        $courseId = Request::param('course_id');
        $posts = PostsModel::where('course_id',$courseId)->order('sort asc')->paginate($this->coursePostList,false,[
            'type'     => 'Bootstrap',
            'var_page' => 'page',
            'page'=>$page,
            'path'=>"javascript:AjaxPage($courseId,[PAGE]);"
        ]);
        $this->assign('posts',$posts);
        $msg = $this->fetch()->getContent();
        return resMsg(1, $msg,'index');
    }else{
        return resMsg(-1,$this->_message['request_wrong'], 'index');
    }
}
点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注