Html 分页自动控制、分页自动生成、分页数量可控制



/**
 * 对页面进行分页
 * @param obj 页码标签对象
 * @param  pageCount number 总页面数
 * @param  pageSize number 分页大小
 * @param currentPage number 当前页
 */
function PagingManage(obj, pageCount, pageSize, currentPage) {
    if (obj) {
        var dataCount = pageCount; //数据总数
        var pagesize = pageSize;//单页数量
        var currentpage = currentPage;//当前页面
        var pageNum;//分页总数
        var showPageNum = 6;//显示多少个页码

        var pagehtml = "";
        var divId = "" + obj.attr('id');

        //计算分页总数
        if (dataCount % pagesize == 0) {
            pageNum = parseInt(dataCount / pagesize);
        } else {
            pageNum = parseInt(dataCount / pagesize) + 1;
        }

        console.log('dataCount:' + dataCount + '<>pageSize:' + pagesize + '<>currentPage:' + currentpage);
        console.log('pageNum:' + pageNum + '<>showPageNum:' + showPageNum + '<>divId:' + divId);

        //只有一页内容
        if (pageNum <= 1) {
            pagehtml = "";
        }

        //大于一页内容
        if (pageNum > 1) {
            if (currentpage > 1) {
                pagehtml += '<li><a href="javascript:void(0);" οnclick="switchPage(\'' + divId + '\',' + (currentpage - 1) + ')">上一页</a></li>';
            }

            var startPage = 1;
            //计算页码开始位置
            if (showPageNum > pageNum) {//如果要显示的页码大于总的页码数
                console.log('showPageNum > pageNum');
                startPage = 1
            } else {//如果要显示的页码小于总的页码数
                if (currentpage - (showPageNum / 2) <= 0) {//如果当前页面
                    startPage = 1;
                    console.log('currentpage - (showPageNum / 2) < 0');
                } else if (currentpage + (showPageNum / 2) >= pageNum) {
                    startPage = pageNum - showPageNum;
                    console.log('currentpage + (showPageNum / 2) > pageNum');
                } else {
                    startPage = currentpage - (showPageNum / 2);
                }
            }

            startPage = parseInt(startPage);
            console.log('startPage:' + startPage);

            for (var i = startPage; i < (startPage + showPageNum); i++) {

                //如果要输出的页面大于总的页面数,则退出
                if (i > pageNum) {
                    break;
                }

                if (i == currentpage) {
                    pagehtml += '<li class="active"><a href="javascript:void(0);" οnclick="switchPage(\'' + divId + '\',' + i + ')">' + i + '</a></li>';
                } else {
                    pagehtml += '<li><a href="javascript:void(0);" οnclick="switchPage(\'' + divId + '\',' + i + ')">' + i + '</a></li>';
                }
            }


            if (currentpage < pageNum) {
                pagehtml += '<li><a href="javascript:void(0);" οnclick="switchPage(\'' + divId + '\',' + (currentpage + 1) + ')">下一页</a></li>';
            }
        }
        obj.html(pagehtml);
    }





  • 在Html中导入js文件
    script type="text/javascript" src="/js/PagingManage.js"></script>
  • 设定分页放置的位置
    
    <div id="complete" class="pagination"></div>
    在页面尾部js代码块中执行,该方法执行结束即可生成分页示例图,点击试试看
    
    
    <script type="text/javascript">
    $(function () {
        PagingManage($('#complete'),100, 10, 1);
    });
    /**
     * 响应动态生成的分页按钮的的点击事件
     * @param divId
     * @param page
     */
    function switchPage(divId, page) {
        
    alert('to do...');
    }
    </script>


  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ThinkPHP5 分页数量控制可以通过在查询条件设置 `limit` 参数来实现。例如,假设你需要在文章列表分页显示,每页显示 10 条数据,可以使用以下代码: ```php // 获取当前页数,默认为 1 $page = input('get.page/d', 1); // 每页显示的数量 $limit = 10; // 计算偏移量 $offset = ($page - 1) * $limit; // 查询文章列表 $articles = Db::name('article')->limit($offset, $limit)->select(); ``` 在上面的代码,`$page` 变量获取当前页数,默认为 1。`$limit` 变量定义每页显示的数量为 10。`$offset` 变量计算偏移量,根据当前页数和每页显示的数量计算偏移量。最后,通过 `limit` 方法设置查询结果的限制条件。 注意,上面的代码仅为示例,具体实现需要根据你的实际需求进行调整。 ### 回答2: 要控制ThinkPHP5分页数量,我们可以通过设置查询条件和传入参数来实现。 首先,我们需要在控制获取每页显示的数量。可以使用`request`方法获取请求参数的每页数量值。 ```php $pageSize = request()->param('pageSize', 10); // 每页显示10条数据 ``` 然后,我们需要在模型(Model)进行查询操作。使用`limit`方法限制查询结果的数量,同时使用`paginate`方法来进行分页。 ```php $data = MyModel::where($condition)->limit($pageSize)->paginate($pageSize, false, ['query' => request()->param()]); ``` 在`paginate`方法,第一个参数指定每页显示的数量,第二个参数为是否显示总页数,第三个参数传入查询参数,保证分页链接可以正确地生成。 最后,我们需要在视图(View)渲染分页链接。可以使用`render`方法来生成分页链接。 ```php echo $data->render(); ``` 以上就是控制ThinkPHP5分页数量的方法。我们通过获取每页显示的数量设置查询条件,并传递参数来实现分页数量控制。 ### 回答3: ThinkPHP5分页数量控制可以通过两种方式实现:手动控制和自动计算。 手动控制方式是通过在分页查询方法传入参数来指定每页显示的数据数量。在使用分页查询的时候,我们可以在paginate方法添加参数,如paginate(10),表示每页显示10条数据。这样,无论数据库有多少条数据,都会按照每页显示10条的方式进行分页,并显示相应的页码。手动控制方式适用于在特定需求下,需要固定每页显示数量的情况。 自动计算方式是通过对数据总量进行计算,根据需求自动设置每页显示的数据数量。ThinkPHP5提供了paginate方法的第二个参数用于设置自动计算每页显示数量的规则,如paginate(10, true)。设置该参数为true时,系统会根据数据总量和设置分页参数自动计算每页显示的数据数量,并进行分页显示。这种方式适用于数据量比较大,需要根据数据总量来优化每页显示数量的情况。 总之,无论是手动控制还是自动计算,ThinkPHP5提供了灵活的方式来控制分页数量,开发者可以根据实际需求选择合适的方式来进行分页处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值