Ajax+js+dom+json+php+mysql实现仿google的超强分页、隔行变色效果

 

 Paging.php文件

<?php

include "../../../include/dbConn.php";

/*

定义几个关键的变量

 

*/

 

if(isset($_GET['np'])){

    $nowPage=$_GET['np'];

}else{

       $nowPage=1;

       }

$rs=mysql_query("select count(*) from area");

$rowNum=mysql_result($rs,0);

 

$Pages=ceil($rowNum/$F_PAGESIZE);

 

?>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>实现超强仿google分页效果</title>

<head>

<style type="text/css">

#tab{

       margin:auto auto;

       border-collapse:collapse;

        

       }

#content{

       width:750px;

        

       background-color:#3C9;

       border:1px dashed;}

#pageNum{

       width:750px;

       text-align:center;

       height:20px;

       background-color: #CF3;

       border:1px dashed;}

      

</style>

<script language="javascript" type="text/javascript" src="../../../include/ajaxUtil.js"></script>

<script language="javascript" type="text/javascript" src="../../../include/Interlaces.js"></script>

<link type="text/css" rel="stylesheet" href="../../../include/Interlaces.css">

<script language="javascript" type="text/javascript">

//------------显示页码部分开始-------//

     var nowPage=1;

        

        var endPage=<?php echo $Pages;?>;

        var pages=<?php echo $Pages;?>;

function  initPages(){

       var startPage=1;

        if(pages>11){

                if(nowPage-10>0){

                       startPage=nowPage-10;

                      

                       }else{

                       startPage=1;

                              }

                if(nowPage+9<pages){

                       endPage=nowPage+9;

                      

                       }else{

                       endPage=pages; 

                              }

               }

               var pageNumstr="";

              //判断上一页

              if(nowPage!=1){

                     pageNumstr+="<a href='javascript:getPageDatas("+(nowPage-1)+")'>上一页</a>";

                     }

               

        for(var i=startPage;i<=endPage;i++){

          if(nowPage==i){

              pageNumstr+="&nbsp;<b><font color='red'>"+i+"</font></b>";

              }else{

              pageNumstr+="&nbsp;<a href='javascript:getPageDatas("+i+")'>"+i+"</a>";   

                     }    

               }

               if(nowPage<pages){

                     pageNumstr+="<a href='javascript:getPageDatas("+(nowPage+1)+")'>下一页</a>";

                     }

        $$("pageNum").innerHTML=pageNumstr;

        //判断下一页

      

               

 

}

 

//------------显示页码部分结束-------//

//------------显示正文开始部分-------//

 

function getPageDatas(np){

        

         var url="paging-goole.php";

         var params="np="+np;

         //进行ajax请求

         get(url,params,processPageDatas);

       }

  

function processPageDatas(xhr){

               

          var obj=eval("("+xhr.responseText+")");

          //将当前页重新赋,服务器端返回的是字符转值

        nowPage=parseInt(obj.np);

         initPages();

          //获取查询结果

         var rows=obj.pageDatas;

        

         var pageStr="<table id='Interlaces_tab'>";

              pageStr+="<tr><th>编号</th><th>名称</th><th>编码</th><th>拼音</th><th>拼音缩写</th></tr>";

               

         for(var i=0;i<rows.length;i++){

       pageStr+="<tr><td>"+rows[i].id+"</td><td>"+rows[i].name+"</td><td>"+rows[i].code+"</td><td>"+rows[i].p+"</td><td>"+rows[i].l+"</td></tr>";         

       }

        pageStr+="</table>";

         //显示到div

         $$("content").innerHTML=pageStr;

         Interlaces();

        

       }

//------------显示正文部分结束-------

//------------显示隔行变色效果-------//

function gehang(){}

//------------显示隔行变色结束-------

</script>

</head>

 

<body οnlοad="getPageDatas(1)">

<table id="tab">

  <tr>

    <td>

     <div id="content"></div>

    </td>

  </tr>

  <tr>

    <td><div id="pageNum"></div></td>

  </tr>

</table>

 

</body>

</head>

paging-goole.php

<?php 

header("Content-Type:text/html;charset=utf-8"); 

include "../../../include/dbConn.php";

//接收客户端传过来的数据 np 

$np=$_GET['np']; 

//$sql="selsec * from area";

$sql="select id,name,code,p,l from area limit ".($np-1)*$F_PAGESIZE.",".$F_PAGESIZE; //echo $sql;

 

$rs=mysql_query($sql); 

//$arr="";

 

//便利度去每一行数据  

while($rows=mysql_fetch_assoc($rs)){ 

   $arr[]=$rows;

     

}

$arr2=array("np"=>$np,"pageDatas"=>$arr);

 //将数组转化成json对象    

  echo json_encode($arr2);   

    

?> 

将CSS、隔行变色封装成两个文件

Interlaces.js

function Interlaces(){

         

        

       //获取所有的tr

       var  Interlaces_tab=document.getElementById("Interlaces_tab");

       var trlist=Interlaces_tab.getElementsByTagName("tr");

      

       for(var i=1;i<trlist.length;i++){

       //进行判断

       if(i%2==0){

              trlist[i].className="two";

              }else{

                     trlist[i].className="one";

                     }

                     var oldcolor;  

              //当鼠标移动到该行,改行颜色加深

              trlist[i].οnmοuseοver=function(){

                     oldcolor=this.className;

                     //重新设定新的颜色

                     this.className="over";

                     }

                     trlist[i].οnmοuseοut=function(){

                            //当鼠标移开,自动还原颜色

                            this.className=oldcolor;

                     }

              }

       }

      

       var color="";

       function over(trNode){

              //把原来的颜色,先另存为

              color=trNode.className;

              //将当前行颜色设定为over

              trNode.className="over"

              }

//当鼠标离开的时候,我们原来的行的颜色设定回来

function out(trNode){

              //将当前行颜色设定为color

              trNode.className=color;

              }

Interlaces.css

.top{

       background-color:#C06;

       color:#0F0;

}

table{

        width:750px;

       border-collapse:collapse;

       border:1px #CF3 dashed;

       }

       td,th{

              border:#30C 1px solid;

       }

       .one{

              background-color:#0CF;

       }

       .two{

              background-color:#C0F;

       }

       .over{

              background-color:#63F;

       }

---------------------------------------------------------

实现效果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值