博主信息
博文 41
粉丝 0
评论 0
访问量 36662
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
0611作业2019年06月12日19:48:56
Viggo的博客
原创
1114人浏览过

理解分页的原理, 并背诵偏移量的公式

页显示数量 * (当前页 -1 )

例如:

当前页显示内容为5

5*(当前分页-1) offset索引是从0开始

第一页的话 5*(1-1)=0 从0开始查询

第二页的话 5*(2-1)=5 从5开始查询


当前页码的高亮显示方法, 用location.search来实现,或者用其它方式都可以

实例

<?php

?>
<!doctype html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>分页显示</title>
</head>
<style>
    table,tr,td{
        border: 1px solid lightgray;
        border-collapse: collapse;
    }
    table{width: 800px;text-align: center}
    thead{
        background: lightcoral;
    }
    thead tr{height: 40px}
    tbody tr{height: 30px}
    ul{list-style: none}
    ul li{display: inline-block;border: 1px solid black; width: 20px;height: 20px;line-height: 20px;margin: 2px;text-align: center;cursor: pointer;}
    ul li:hover {
        background-color: grey;
        color: white;
    }
    .active {
        background-color: lightcoral;
    }
</style>
<body onload="callBack(<?php echo isset($_GET['p']) ? $_GET['p'] : 1;  ?>)">

<table>
    <thead>
    <tr>
        <td>编号</td>
        <td>名称</td>
        <td>简介</td>
    </tr>
    </thead>

    <tbody>


    </tbody>

</table>

<ul>

</ul>

<script>

    let request = new XMLHttpRequest();

    function callBack(p) {
        request.addEventListener('readystatechange',getData,false);

        request.open('GET','get_movies.php?p='+p.toString(),true);

        request.send(null);
    }

    function getData() {
        if (request.readyState === 4 && request.status === 200){
            let data = JSON.parse(request.responseText);
            // console.log(data);


            // 第一步添加分页条
            for (let i = 0; i < data[0]; i++) {
                let ul = document.getElementsByTagName('ul').item(0);
                let li = document.createElement('li');
                li.innerHTML = i + 1;

                // 判断当前按钮的值和地址栏get参数最后一个值是否相等
                // if (li.innerText === location.search.slice(3,4)){
                //     li.className = 'active';
                // }
                // 三目运算
                li.className = li.innerText === location.search.slice(3,4) ? 'active' : null;

                // 动态显示分页数据
                li.onclick = function () {
                    // location.search 获取地址栏的地址后面的参数 get参数
                    // slice(0,3) 获取指定内容 参数1 是起始索引 参数2 是结束索引
                    // let search = location.search.slice(0,3) + this.innerText;
                    // location.replace();    //替换当前请求 'http://'会直接跳转地址 不带http:// 会在当前地址后面添加
                    location.replace('?p='+this.innerText);


                };
                ul.appendChild(li);

            }


            // 判断地址栏是否有get参数 没有的话就添加一个参数
            if (location.search === ''){
                location.replace('?p=1');
            }

            // 2. 显示当前页内容
            let tbody = document.getElementsByTagName('tbody').item(0);
            data[1].forEach(function (value){
                let tr = document.createElement('tr');
                for (let key in value) {
                    let td = document.createElement('td');
                    td.innerText = value[key];
                    tr.appendChild(td);
                }
                tbody.appendChild(tr);
            });



        }
    }


</script>


</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学