分页案例

这个案例主要是为了模拟网页中我们经常见到的分页效果,在这里主要用到了Ajax以及PHP,当然还有数据库,这里我用的是MySql数据库,而且只是为了单纯的实现这个效果因此对于数据库的设计这块并没有去认真的设计,下面我们就直接看代码吧

 <script src="js/jquery-1.12.3.min.js"></script>
    <style>
        .fenye span {
            border: 1px solid #ccc;
            padding: 3px 5px;
            margin-right: 5px;
            cursor: pointer;
        }
        
        .fenye span.active {
            border: none;
            color: red;
            font-weight: bold;
        }
        
        ul,
        li {
            list-style: none;
        }
    </style>
<ul id="list"></ul>
    <div class="fenye"></div>
<script>
        $.get('10get_data.php', function(res) {
            data = JSON.parse(res);

            //当前页
            var nowindex = 1;

            //每页显示的条数
            var num = 5;

            //总的条数 data.length
            //获取总的页数
            var zong = Math.ceil(data.length / 5);

            //创建“上一页”标签并把它加入到指定页面的位置
            $("<span>上一页</span>").appendTo('.fenye');

            //循环输出显示页码
            for (var i = 1; i <= zong; i++) {
                $("<span>" + i + "</span>").appendTo('.fenye');
            }

            //创建“下一页”标签并把它加入到指定页面的位置
            $("<span>下一页</span>").appendTo('.fenye');

            //默认第一页
            createpage(nowindex);

            function createpage(nowindex) {
                $('#list').empty();
                $('.fenye').find('span').eq(nowindex).addClass('active').siblings().removeClass('active');

                var end = num * nowindex;

                if (end > data.length) {
                    end = data.length;
                }

                //把第一页的数据展示出来,展示5条
                for (var j = num * (nowindex - 1); j < end; j++) {
                    $("<li><a  href='#'>" + data[j]['title'] + "</a></li>").appendTo('#list');
                }
            }

            //给页码绑定事件
            $('.fenye').find('span').click(function() {
                var page = $(this).html();
                if (page == '上一页') {
                    nowindex--;
                    if (nowindex < 1) {
                        nowindex = 1;
                        return;
                    }
                } else if (page == '下一页') {
                    nowindex++;
                    if (nowindex > zong) {
                        nowindex = zong;
                        return;
                    }
                } else {
                    if (page == nowindex) {
                        return;
                    }
                    nowindex = page;
                }
                createpage(nowindex);
            })
        })
    </script>
<?php
//连接数据库
  $con=new PDO('mysql:host=localhost;dbname=beixidb;port=3306;charset=utf8','root','123456');
   
  //查询数据
  $res=$con->query('select *  from userinfo');
   
  //判断是否存在数据,并输出
  if($res){
    $data =$res->fetchAll(PDO::FETCH_ASSOC);
    //解析数据
    echo json_encode($data);
   }else{
     echo '没有数据';
   }
?>

当数据不满5条时:

当数据大于5条时:

好了,到这里这个小案例就结束啦~~~

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
下拉分页是指在页面滚动到底部时,自动加载下一页数据,以实现无限滚动的效果。在uniapp中,可以使用`onReachBottom`事件来实现下拉分页。 以下是一个简单的下拉分页案例: 1. 在页面的`<script>`标签中定义一个`page`变量,表示当前加载的页数。 ``` <script> export default { data() { return { page: 1, list: [] } }, methods: { // 加载数据 loadMore() { uni.request({ url: 'https://example.com/api/list', data: {page: this.page}, success: (res) => { this.list = this.list.concat(res.data) this.page++ } }) } }, onReachBottom() { // 触发下拉分页 this.loadMore() } } </script> ``` 2. 在页面的`<template>`标签中,使用`uni-list`组件和`v-for`指令来渲染列表数据。 ``` <template> <view> <uni-list> <uni-list-item v-for="item in list" :key="item.id"> {{ item.title }} </uni-list-item> </uni-list> </view> </template> ``` 3. 在页面的`<style>`标签中,设置`uni-list`组件的高度为屏幕高度减去导航栏高度,并添加样式以隐藏加载更多提示。 ``` <style> uni-list { height: calc(100vh - 88rpx); } uni-list-item.loading { display: none; } </style> ``` 以上就是一个简单的下拉分页案例。当用户滚动到页面底部时,会触发`onReachBottom`事件,从而调用`loadMore`方法加载下一页数据,并将数据添加到列表中。在加载数据时,可以通过传递页数来实现分页效果。同时,为了美观,可以通过添加样式来隐藏加载更多提示。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白小白从不日白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值