做ajax分页

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="js/jquery.min.js"></script>
    </head>

    <body>

        <table width="100%" border="1" cellpadding="0" cellspacing="0">
            <tr>
                <td>代号</td>
                <td>名称</td>
            </tr>

            <tbody id="shuju">

            </tbody>
        </table>

        <!--分页列表信息:      上一页    1 2 3 4 5  下一页         -->

        <script>
            //定义两个全局变量
            var page = 1;                                    //代表当前页  默认显示第一页
            var num = 5;                                     //每页显示几条

            //加载数据
            //Load();

            //加载分页列表信息;
            //LoadFenYe();

            //加载数据的方法
            function Load() {
                $.ajax({
                    url: "chuli.php",                      //交给后台页面处理
                    data: {                              //向后台传递参数
                        page: page,
                        num: num
                    },
                    type: "POST",                          //用post方式传递
                    dateType: "JSON",                     //返回数据类型是json

                    success: function(data) {

                        var str = "";                      //定义一个空字符串 需将此放入表格显示
                        for(var k in data)                  //遍历json数据  使用foreach
                        {
                            data[k].Code                   //data[k]取到json数据里的二维的一维的数据   取到json里的所有的代号
                            str = str + "<tr><td>'+ data[k].Code +'   </td><td>'+ data[k].Name +'</td></tr>"
                        }
                        $("#shuju").html(str);
                    }
                });
            }

            //加载分页列表信息的方法
            function LoadFenYe() {
                //列表里面最多显示 5 条信息
                var s = "";                              //定义个字符串用来    存储所有分页信息的代码

                //加载上一页
                s = "<span id='prev'>上一页</span>";

                //加载列表
                var zts = 0;                             //总条数

                //知道了每页显示5条   再查总共多少条数据
                $.ajax({
                    async: false,                          //查总条数的这个ajax要做成同步的          异步是同一时间做多件事情,同步是需要一件事做完再做第二件事情。
                    url: "chazongtiaoshu.php",
                    dataType: "TEXT",                      //这个查总条数的ajax  不需要传递数据
                    success: function(data) {
                        zts = data;                      //返回的data  就是总条数
                    }
                });

                //求总页数
                var zys = Math.ceil(zts / num);          //Math.ceil()     该方法取一个大于等于指定数字的最小整数

                page = parseInt(page);                      //这个page可能会变成字符串,为防止出错在用之前把page转成整数

                for(var i = page - 2; i < page + 3; i++) //从当前页page-2开始,到当前页page+3结束   (显示页数的时候就显示当前页往左找2个往右找两个)
                {
                    if(i > 0 && i <= zys)                 //加个判断条件  页数不能小于0也不能高于总页数
                    {
                        //因为当前页有个特殊样式并且当前页不能点击所以再加个判断
                        if(i == page) {
                            s = s + "<span ys='" + i + "' class='dangqian'>'+i+'</span>"; //当前页的是这样的样式
                        } else {
                            s = s + "<span ys='" + i + "' class='list'>'+i+'</span>"; //非当前页是这样的样式
                        }

                    }
                }

                //加载下一页
                s = s + "<span id='next'>下一页</span>";
                $("#xinxi").html(s);

                //给上一页加点击事件
                $("#prev").click(function() {
                    page = parseInt(page);                 //先把当前页转为整数

                    if(page > 1)                         //当点击上一页时  当前页需要减去1 但前提是当前页要大于1
                    {
                        page--;
                    }

                    //重新加载数据
                    Load();
                    //重新加载分页信息
                    LoadFenYe();

                });
                //给下一页加点击事件
                $("#next").click(function() {
                    page = parseInt(page);
                    if(page < zys) {
                        page++;
                    }

                    //重新加载数据
                    Load();
                    //重新加载分页信息
                    LoadFenYe();

                });

                //给列表加点击事件
                $("#list").click(function() {
                    page = parseInt($(this).attr("ys")); //把点击的这个当前页转成整数赋值给当前页

                    //重新加载数据
                    Load();
                    //重新加载分页信息
                    LoadFenYe();
                })

            }
        </script>
    </body>

</html>

 

posted @ 2020-01-08 16:42  mengqiaini  阅读(157)  评论(0编辑  收藏  举报