ajax-page局部刷新分页实例

1.引用文件:connect.php

<?php
$host="localhost";
$db_user="root";
$db_pass="root";
$db_name="wh";
$timezone="Asia/Shanghai";

$link=mysql_connect($host,$db_user,$db_pass);
mysql_select_db($db_name,$link);
mysql_query("SET names UTF8");

header("Content-Type: text/html; charset=utf-8");
date_default_timezone_set($timezone); //北京时间
?>

2.ajax,对数据的逻辑处理:pages.php

<?php
include_once(‘connect.php‘);

$page = intval($_POST[‘pageNum‘]);

$page = $page-1;
// var_dump($page);
// exit;

$result = mysql_query("select id from aa");
$total = mysql_num_rows($result);//总记录数

$pageSize = 6; //每页显示数
$totalPage = ceil($total/$pageSize); //总页数

$startPage = $page*$pageSize;

$arr[‘total‘] = $total;
$arr[‘pageSize‘] = $pageSize;
$arr[‘totalPage‘] = $totalPage;

$start = $page * $pageSize + 1;
$end = ($page + 1) * $pageSize; 

// $query = mysql_query("select id,uniprot,url from aa order by id asc limit $startPage,$pageSize");
$query = mysql_query("select id,uniprot,url from aa where id between $start and $end");

while($row=mysql_fetch_array($query)){
     $arr[‘list‘][] = array(
         ‘id‘ => $row[‘id‘],
        ‘uniprot‘ => $row[‘uniprot‘],
        ‘url‘ => $row[‘url‘],
     );
}
//print_r($arr);
echo json_encode($arr);
?>

3.主页:index.php

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ajax-page</title>

    <script type="text/javascript" src="./js/1.11.js" ></script>
    <style type="text/css">
     *{
         margin:0px;
         padding:0px;
     }

     #bigContent{
         /*border:1px solid #282828;*/
         width:800px;
         height:600px;
         margin:0 auto;
     }

     #header{
         width:100%;
         height:30px;
         text-align:center;
         color:red;
         font-style:italic;
     }
     #contenter{
         width:95%;
         height:450px;
         /*border:1px solid #abcdef;*/
         margin:20px auto;
     }

     .left_0{
         width:30%;
         height:200px;
         float:left;
         border:1px solid red;

     }
     .left_1{
         width:30%;
         height:200px;
         float:left;
         border:1px solid red;
         margin-left:5%;

     }

     .left_2{
         width:30%;
         height:200px;
         float:right;
         border:1px solid red;

     }

     .left_3{
         width:30%;
         height:200px;
         float:left;
         border:1px solid red;
         margin-top:30px;

     }
     .left_4{
         width:30%;
         height:200px;
         float:left;
         border:1px solid red;
         margin-left:5%;
         margin-top:30px;

     }

     .left_5{
         width:30%;
         height:200px;
         float:right;
         border:1px solid red;
         margin-top:30px;

     }

     #pager{
         width:95%;
         height:50px;
         border:1px solid red;
         margin:20px auto;
         text-align:center;
         line-height:50px;
     }

     button:hover{
         cursor:pointer;
         color:red;
     }

    </style>
</head>
<body>
    <div id="bigContent">
        <div id="header">
            <h1>ajax-page</h1>
        </div>
        <div id="contenter">

            <!-- <div class="left_0">
                1
            </div>

            <div class="left_1">
                2
            </div>

            <div class="left_2">
                3
            </div>

            <div class="left_3">
                4
            </div>

            <div class="left_4">
                5
            </div>

            <div class="left_5">
                6
            </div>
 -->

        </div>

        <div id="pager">
            <!-- <div class="wuheng" style="width:100%;height:100%;"></div> -->
        </div>

    </div>
</body>

<script type="text/javascript">
     // page 为默认值,默认为第一页
     var page = 1;
     var total,pageSize,totalPage;

     function getData(page){

     $.ajax({
         type: ‘POST‘,
         url: ‘pages.php‘,
         data: ‘pageNum=‘+page,
         dataType:‘json‘,
         beforeSend:function(){
            // $("#header").append("<p id=‘loading‘>loading...</p>");
        },
         success:function(json){

             $("#contenter").empty();  //清除包裹的元素,不包括自己
             // $("#contenter").remove();  //清除包裹的元素,包括自己
             //  注意 empty(),与remove() ,二者之间的区别
             // alert(msg.total);
             total = json.total; //总记录数
            pageSize = json.pageSize; //每页显示条数
            curPage = page; //当前页
            totalPage = json.totalPage; //总页数

            var contents = "";
            var list = json.list;

            // alert(list);
            $.each(list,function(index,array){ //遍历json数据列
                // alert(index  + "  " + array);
                // exit;
                contents += "<div class= ‘left_"+index+"‘ >" + array[‘id‘] + "<br/>" + array[‘uniprot‘] + "<br/>" + array[‘url‘] + "</div>";
                // alert(contents);
                // alert(array[‘url‘]);
                // exit;

            });

             $("#contenter").append(contents);

            // alert(page);
         },
         complete:function(){ //生成分页条
            getPageBar();
        },

        error:function(){
            alert("数据加载失败");
        }

     });

 }

     //获取分页条
function getPageBar(){
    //页码大于最大页数
    if(curPage>totalPage)
        curPage=totalPage;
    //页码小于1
    if(curPage<1)
        curPage=1;

    pageStr = "<span>共"+total+"条</span><span>"+curPage+"/"+totalPage+"</span>  &nbsp;&nbsp;&nbsp;&nbsp;";

    //如果是第一页
    if(curPage==1){
        pageStr += "<span>首页</span>&nbsp;&nbsp;&nbsp;<span>上一页</span>&nbsp;&nbsp;&nbsp;";
    }else{
        pageStr += "<span><button class=‘abc‘   data-num=‘1‘>首页</button></span>&nbsp;&nbsp;&nbsp;<span><button class=‘abc‘   data-num=‘"+(curPage-1)+"‘>上一页</button></span>&nbsp;&nbsp;&nbsp;";
    }

    //如果是最后页
    if(curPage>=totalPage){
        pageStr += "<span>下一页</span>&nbsp;&nbsp;&nbsp;<span>尾页</span>";
    }else{
        pageStr += "<span><button class=‘abc‘   data-num=‘"+(parseInt(curPage)+1)+"‘>下一页</button></span>&nbsp;&nbsp;&nbsp;<span><button class=‘abc‘   data-num=‘"+totalPage+"‘>尾页</button></span>";
    }

    $("#pager").html(pageStr);
}

    $(function(){
        getData(1);

       // alert("aaaa");
       $("#pager").on("click","button",function(data){
           // alert(data);

           num = $(this).attr(‘data-num‘);
           // alert(num);
           if(num > 0){
               getData(num);
           }

       });

    });
</script>
</html>

3.几点注意:

JQuery获取append后的动态元素:live()和on()

在具体的代码中,若是通过:

 $("div").html("content");或者$("div").append(conternt)

,若要给动态添加的元素/标签/内容,,添加相关的事件,最好使用live,on等处理事件,否则无法生效。

如: $("#pager").on("click","button",function(data)。。如果是 $("#pager button").click(function(){...}),这种写法是无效的。。所以要注意。

时间: 2024-10-24 00:30:07

ajax-page局部刷新分页实例的相关文章

Ajax实现无刷新分页

注:本文中使用到的一些类库在前面文章都能找到源代码,我会在文中指明链接所在,为了缩短文章篇幅,由此带来的阅读不便,敬请谅解. 本文讲解 Ajax 实现无刷新分页.实现原理.代码展示.代码下载. 这里需要说明一些知识: 1.Ajax 无刷新页面的好处:提供良好的客户体验,通过 Ajax 在后台从数据库中取得数据并展示,取缔了等待加载页面而出现的空白状态: 2.那么,Ajax 无刷新页面是运行在动态页面(.PHP)?还是静态页面(.html/.htm/.shtml)?答案是:静态页面: 3.实现原理

Ajax实时局部刷新

//Ajax实现局部刷新      <script type="text/javascript">    var xmlhttp;    function getData()    {      //获取用户填写的名称      var city=document.getElementById("txt").value;      //创建异步调用对象      xmlhttp=new ActiveXObject("Microsoft.XMLH

Ajax 实现无刷新分页

Ajax 实现无刷新分页

Ajax 异步局部刷新

Ajax 异步局部刷新 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面. 实现json 字符串与 JavaScrip 对象得相互转换 JSON.parse()和 JSON.stringify() 1.序列化(将JavaScrip 转换为 json)使用 JSON.st

smarty+php+ajax 简单无刷新分页

简介 分页,无非就是从数据库中获得我们想查询的数据,再加以处理即可! ① 确定数据总数($count) ② 每页显示数据条数($pageSize) ③ 分多少页($pageCount) ④ 上一页($pagePrev) ⑤ 下一页($pageNext) ⑥ 判断越界问题 ⑦ 偏移量($offset) ⑧ sql语句($sql = "select * from goods limit $offset,$pageSize";) 简单归简单,我们还得考虑实际的应用.例如:如果你正在土豆网看&

在Thinkphp中使用AJAX实现无刷新分页

在Thinkphp目录的Lib\ORG\Util\目录里新建AjaxPage.class.php,写入一下内容: <?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK IT ] // +---------------------------------------------------------------

javascript;Jquery;获取JSON对象,无刷新分页实例。

js: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>&

ajax实现自动刷新页面实例

html部分: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ajax实现自动刷新</title> </head> <body onLoad="Autofresh()"> <p>现在的时间是:<span id="currenttim

easyui的datagrid整合struts2,以及Ajax,实现局部刷新功能,并设置分页的实现---------投票案例

========================================================================================================= 1.登陆功能- ----表单内容----------------------------------------------------- <pre name="code" class="java"><div class="log