Ajax 实现无刷新分页

用这种ajax做分页的方法比较简单,把代码直接复制就可以,然后根据实际更改一下里面的参数。

1.设置分页显示显示的样式,显示效果如下。

复制代码
<style type="text/css">
*{ margin:0px auto; padding:0px; font-family:"微软雅黑"}
.b3{ list-style:none; 400px; height:30px; font-size:16px; text-align:center; line-height:30px; vertical-align:middle; position:relative}
.b4{ 50px; height:30px; float:left; font-size:20px; text-align:center; line-height:30px; vertical-align:middle}
.b4:hover{ cursor:pointer; background-color:#FC6}
#fy_shang{ font-size:16px; text-align:center; line-height:30px; vertical-align:middle; 60px; float:left}
#fy_xia{ font-size:16px; text-align:center; line-height:30px; vertical-align:middle; 60px}
#fy_shang:hover{ cursor:pointer; background-color:#FC6}
#fy_xia:hover{ cursor:pointer; background-color:#FC6}
</style>
复制代码

2.页数显示代码容器,把这段代码放在</table>后面。

复制代码
<!--分页开始-->
<center>
<ul class="pagination b3" id="fy_list">       
</ul>
<input type="hidden" value="1" id="fy_n" />
</center>
<!--分页结束-->  
复制代码

3.ajax实现分页的代码

复制代码
//ajax分页开始
$(document).ready(function(e) {
    JiaZai();
    var zys = 0;
//页面加载数据
})
function JiaZai()
    {        
        var n = $("#fy_n").val();//页数显示框里面显示的页数
        $.ajax({
                url:"shipinguanlichuli.php",
                data:{n:n,gjz:""},//n是显示的页数。gjz是表格显示中有关键字查询,这里gjz传一个空值,意思是没有查询条件,查询所有的。
                type:"POST",
                dataType:"JSON",
                success: function(data){                                    
                        var s ="";                        
                            for(var i in data)
                            {
                            s+="<tr><td><input type='checkbox' class='qx'  value='"+data[i].id+"' name='sc[]' /></td><td class='hidden-xs'>"+data[i].id+"</td><td>"+data[i].name+"</td><td class='hidden-xs'>"+data[i].details+"</td><td class='hidden-xs'>"+data[i].wprice+"</td><td class='hidden-xs'>"+data[i].dprice+"</td><td class='hidden-xs'>"+data[i].class+"</td><td><a href='xiugai.php?c="+data[i].id+"'>修改</a></td><td><a href='shanchuchuli.php?c="+data[i].id+"' onclick="return confirm('确定删除吗?')">删除</a></td></tr>";//拼接表格显示内容
                            }
                        $("#a22").html(s);//把拼接好的字符串放到要显示的div里面。                                                    
                    }
            });
            
        //获取分页数(列表)
        $.ajax({
                url:"zyschuli3.php",
                type:"POST",
                dataType:"TEXT",
                success: function(data){                    
                        //总页数
                        var ys = Math.ceil(data/15); 
                        zys = ys;                        
                        var s = "<div><a id='fy_shang' class='b4'>上一页</a></div>";
                        var dangqian = $("#fy_n").val(); //当前页数                        
                        for(var i=dangqian-2;i<=dangqian+2;i++)
                        {
                            if(i>0 && i<=ys)
                            {
                                if(dangqian==i)
                                {
                                    s+="<div class='b4' class='active'><a class='fy_zhong b4'>"+i+"</a></div>";
                                }
                                else
                                {
                                    s+="<div class='b4'><a class='fy_zhong'>"+i+"</a></div>"
                                }
                            }
                        }
                        s += "<div><a id='fy_xia' class='b4'>下一页</a></div>";
                        $("#fy_list").html(s);
                        
                           //给分页列表加事件
                        JiaShiJian();
                    }
                })
  //给分页列表加事件的方法
  function JiaShiJian()
  {
    $("#fy_shang").click(function(){    
    var n = $("#fy_n").val(); 
    if(n>1)
    {
      n--;
    }
    else
    {
      n=1;
    }
      $("#fy_n").val(n);

    //加载数据
    JiaZai();
    })
    $("#fy_xia").click(function(){
    var n = $("#fy_n").val(); 
    if(n<zys)
    {
      n++;
    }
    else
    {
      n=zys;
    }
    $("#fy_n").val(n);

    //加载数据
    JiaZai();
    })
      $(".fy_zhong").click(function(){
      var n = $(this).text();
      $("#fy_n").val(n);

    //加载数据
    JiaZai();
    })
  }
复制代码

4.如果要加上关键字查询功能,现在表格上面加上关键字输入框。

关键字:<input id="guanjianzi" type="text" name="key" />    

然后在js代码中多写一步,其实就是重复显示效果的js代码,里面加上条件。下面是分页显示+关键字查询所有的代码。

复制代码
//ajax分页开始
$(document).ready(function(e) {
    JiaZai();
    var zys = 0;
//页面加载数据
})
function JiaZai()
    {        
        var n = $("#fy_n").val();//页数显示框里面显示的页数
        $.ajax({
                url:"shipinguanlichuli.php",
                data:{n:n,gjz:""},//n是显示的页数。gjz是表格显示中有关键字查询,这里gjz传一个空值,意思是没有查询条件,查询所有的。
                type:"POST",
                dataType:"JSON",
                success: function(data){                                    
                        var s ="";                        
                            for(var i in data)
                            {
                            s+="<tr><td><input type='checkbox' class='qx'  value='"+data[i].id+"' name='sc[]' /></td><td class='hidden-xs'>"+data[i].id+"</td><td>"+data[i].name+"</td><td class='hidden-xs'>"+data[i].details+"</td><td class='hidden-xs'>"+data[i].wprice+"</td><td class='hidden-xs'>"+data[i].dprice+"</td><td class='hidden-xs'>"+data[i].class+"</td><td><a href='xiugai.php?c="+data[i].id+"'>修改</a></td><td><a href='shanchuchuli.php?c="+data[i].id+"' onclick="return confirm('确定删除吗?')">删除</a></td></tr>";//拼接表格显示内容
                            }
                        $("#a22").html(s);//把拼接好的字符串放到要显示的div里面。                                                    
                    }
            });
            
        //获取分页数(列表)
        $.ajax({
                url:"zyschuli3.php",
                type:"POST",
                dataType:"TEXT",
                success: function(data){                    
                        //总页数
                        var ys = Math.ceil(data/15); 
                        zys = ys;                        
                        var s = "<div><a id='fy_shang' class='b4'>上一页</a></div>";
                        var dangqian = $("#fy_n").val(); //当前页数                        
                        for(var i=dangqian-2;i<=dangqian+2;i++)
                        {
                            if(i>0 && i<=ys)
                            {
                                if(dangqian==i)
                                {
                                    s+="<div class='b4' class='active'><a class='fy_zhong b4'>"+i+"</a></div>";
                                }
                                else
                                {
                                    s+="<div class='b4'><a class='fy_zhong'>"+i+"</a></div>"
                                }
                            }
                        }
                        s += "<div><a id='fy_xia' class='b4'>下一页</a></div>";
                        $("#fy_list").html(s);
                        
                           //给分页列表加事件
                        JiaShiJian();
                    }
                })                
                
            $("#guanjianzi").keyup(function(){
                var gjz = $(this).val();
                var n = $("#fy_n").val();
                $.ajax({
                    url:"shipinguanlichuli.php",
                    data:{n:n,gjz:gjz},
                    type:"POST",
                    dataType:"JSON",
                    success: function(data){                        
                        var s ="";                        
                            for(var i in data)
                            {
                            s+="<tr><td><input type='checkbox' class='qx'  value='"+data[i].id+"' name='sc[]' /></td><td class='hidden-xs'>"+data[i].id+"</td><td>"+data[i].name+"</td><td class='hidden-xs'>"+data[i].details+"</td><td class='hidden-xs'>"+data[i].wprice+"</td><td class='hidden-xs'>"+data[i].dprice+"</td><td class='hidden-xs'>"+data[i].class+"</td><td><a href='xiugai.php?c="+data[i].id+"'>修改</a></td><td><a href='shanchuchuli.php?c="+data[i].id+"' onclick="return confirm('确定删除吗?')">删除</a></td></tr>";
                            }
                        $("#a22").html(s);                                                                    
                    }
            });
        //获取分页数(列表)
        //var guanjianzi = $("#guanjianzi").val();
        $.ajax({
                url:"zyschuli3.php",
                data:{gjz:gjz},
                type:"POST",
                dataType:"TEXT",
                success: function(data){                    
                        //总页数
                        var ys = Math.ceil(data/15); 
                        zys = ys;                        
                        var s = "<li><a id='fy_shang' class='b4'>上一页</a></li>";
                        var dangqian = $("#fy_n").val(); //当前页数
                        
                        for(var i=dangqian-2;i<=dangqian+2;i++)
                        {
                            if(i>0 && i<=ys)
                            {
                            if(dangqian==i)
                            {
                            s+="<li class='active'><a class='fy_zhong b4'>"+i+"</a></li>";
                            }
                            else
                            {
                                s+="<li><a class='fy_zhong b4'>"+i+"</a></li>"
                            }
                            }
                        }
                        s += "<li><a id='fy_xia' class='b4'>下一页</a></li>";
                        $("#fy_list").html(s);
                        
                           //给分页列表加事件
                        JiaShiJian();
                    }
                })
            });
    }
    
    //给分页列表加事件的方法
    function JiaShiJian()
    {
        $("#fy_shang").click(function(){            
                var n = $("#fy_n").val(); 
                if(n>1)
                {
                    n--;
                }
                else
                {
                    n=1;
                }
                $("#fy_n").val(n);
                
                //加载数据
                JiaZai();
            })
        $("#fy_xia").click(function(){
                var n = $("#fy_n").val(); 
                if(n<zys)
                {
                    n++;
                }
                else
                {
                    n=zys;
                }
                $("#fy_n").val(n);
                
                //加载数据
                JiaZai();
            })
        $(".fy_zhong").click(function(){
                var n = $(this).text();
                $("#fy_n").val(n);
                
                //加载数据
                JiaZai();
            })
    }
</script>
复制代码

5.处理页面1  shipinguanlichuli.php

复制代码
<?php
include("./DBDA.class.php");
$db = new DBDA();
$n = $_POST["n"];//获取页数显示框里面的值
$tg = ($n-1)*15;//每页显示15条数据,这里显示的就是当前页的15条数据。
$tj1 = " 1=1 ";//默认条件是个恒成立的,如果没有其他条件就是查询所有的。
if(!empty($_POST["gjz"]))//获取提交的关键字
{
    $gjz = $_POST["gjz"];
    $tj1 = " name like '%{$gjz}%' or details like '%{$gjz}%' or dprice like '%{$gjz}%' or dprice like '%{$gjz}%' ";//拼接查询条件
}
$sqlsj = "select * from product where {$tj1} limit {$tg},15 ";    
echo json_encode($db->GuanQuery($sqlsj));
复制代码

6.处理页面2 zyschuli3.php

复制代码
<?php
include("DBDA.class.php");
$db = new DBDA();
$tj1 = " 1=1 ";//默认条件是个恒成立的,如果没有其他条件就是查询所有的。
if(!empty($_POST["gjz"]))//获取提交的关键字
{
    $gjz = $_POST["gjz"];
    $tj1 = " name like '%{$gjz}%' or details like '%{$gjz}%' or dprice like '%{$gjz}%' or dprice like '%{$gjz}%' ";//拼接查询条件
}
$sql ="select count(*) from product where {$tj1}";//查询符合条件的数据的总条数
$sj = $db->StrQuery($sql);
echo $sj;
复制代码
原文地址:https://www.cnblogs.com/ZDPPU/p/6862294.html