ajax+js+dom+json+php+mysql实现漂亮的表格各行变色与google分页效果

<?php
include "../../../include/dbConn.php";
//查询数据库,得到总的记录数
$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>ajax+js+dom+json+php+mysql实现仿百度、google的分页效果</title>
<style>
#tab1{
width:750px;
margin:auto auto;
border-collapse:collapse;
text-align:center;
}
#tab{
width:700px;
margin:auto auto;
border-collapse:collapse;
}
#content{

width:750px;
background-color:#CCCCCC;
border:1px dashed #CC0000;
}
#pageNum{
text-align:center;
height:20px;
width:750px;
background-color:#FFCCCC;
border:1px dashed #CC0000;
}
.one{
background-color:#FCC;
}
.two{
background-color:#FC9;
}
.over{
background-color:#03C;
}
</style>
<script language="javascript" type="text/javascript" src="../ajaxUtil.js"></script>
<script language="javascript" type="text/javascript">
//------------显示页码开始
//1、定义当前页

var nowPage=1;

//定义结束页
var endPage=<?php echo $Pages;?>;
//定义总页数
var pages=<?php echo $Pages;?>;
function initPages(){
//定义开始页
var startPage=1;
/*
1、定义当前页 解决在js中使用php中的变量
2、定义开始页
3、定义最终页(结束页)
4、定义总页数
*/


//当总页数大于11的时候,设定其实页和结束页
if(pages>11){
//要设定起始页码
if(nowPage-10>0){
//如果当前页-10>0则设置起始页码=当前页-10
//否则不设置,不设置startPage=1
startPage=nowPage-10;
}
if(nowPage+9<pages){
//如果当前页+9<总页数,则设定结束页为当前页+9,否则设定结束页等于总页数
endPage=nowPage+9;
}else{
endPage=pages;
}
}



var pageNumStr="";
//判断什么时候显示上一页
if(nowPage!=1){
pageNumStr+="<a href='javascript:getPageDatas("+(nowPage-1)+")'>上一页</a> ";
}

//for循环读出页码
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>";
}
//document.getElementById("pageNum").innerHTML=pageNumStr;
$$("pageNum").innerHTML=pageNumStr;

}

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


//-------------显示页面正文开始
function getPageDatas(np){
//根据页码进行ajax异步请求
var url="paging-service.php";
var params="np="+np;
//进行ajax请求
get(url,params,proessPageDatas);
}

function proessPageDatas(xhr){

//alert(xhr.responseText);

//alert(xhr.responseText);
var obj=eval("("+xhr.responseText+")");
//将当前也重新赋值,注意服务器端传回来的是字符串
nowPage=parseInt(obj.np);
initPages();
//获取查询结果
var rows=obj.pageDatas;

var pageStr="<table border=1 id='tab1' >";
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 id=content中
$$("content").innerHTML=pageStr;
geHang();
}
//------------显示页面正文结束





//------------表格的各行变色效果开始
function geHang(){
var tab1=document.getElementById("tab1");
var trlist=tab1.getElementsByTagName("tr");
for(var i=1;i<trlist.length;i++){
if(i%2){
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;
}

}
}
//------------表格的隔行变色效果结束
</script>
</head>


<body οnlοad="getPageDatas(1);geHang()">
<table id="tab">
<tr>
<td>
<div id="content"></div>
</td>
</tr>
<tr>
<td>
<div id="pageNum"></div>
</td>
</tr>
</table>
</body>

</html>


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 好的,我可以为您提供一些相关的参考资料。 首先,您需要在前端页面中引入Layui和jQuery库,以及Layui的分页插件。代码如下: ```html <!-- 引入jQuery库 --> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <!-- 引入Layui库 --> <link rel="stylesheet" href="https://cdn.bootcss.com/layui/2.5.6/css/layui.min.css"> <script src="https://cdn.bootcss.com/layui/2.5.6/layui.min.js"></script> <!-- 分页插件 --> <script type="text/javascript"> layui.use(['laypage'], function(){ var laypage = layui.laypage; //执行一个laypage实例 laypage.render({ elem: 'demo' //注意,这里的 test1 是 ID,不用加 # 号 ,count: 50 //数据总数,从服务端得到 ,limit: 10 //每页显示的条数 ,jump: function(obj, first){ //首次不执行 if(!first){ //do something } } }); }); </script> ``` 然后,在后端使用ThinkPHP框架进行数据查询,返回分页数据。代码如下: ```php public function index() { //获取分页参数 $page = input('get.page', 1, 'intval'); $limit = input('get.limit', 10, 'intval'); //查询数据总数 $total = Db::name('user')->count(); //查询分页数据 $list = Db::name('user') ->limit(($page - 1) * $limit, $limit) ->select(); //返回JSON数据 return json([ 'code' => 0, 'msg' => '', 'count' => $total, 'data' => $list, ]); } ``` 最后,在前端页面中使用jQuery的ajax请求获取后端返回的分页数据,并动态渲染表格。代码如下: ```javascript //分页请求 function page(page, limit) { $.ajax({ url: '/index.php/index/index', type: 'get', data: { page: page, limit: limit, }, dataType: 'json', success: function (res) { var html = ''; layui.each(res.data, function (index, item) { html += '<tr>'; html += '<td>' + item.id + '</td>'; html += '<td>' + item.username + '</td>'; html += '<td>' + item.email + '</td>'; html += '</tr>'; }); $('#data').html(html); layui.laypage.render({ elem: 'page', count: res.count, limit: limit, curr: page, jump: function (obj, first) { if (!first) { page(obj.curr, limit); } } }); } }); } //初始化分页 page(1, 10); ``` 以上就是一个基于Layui和ThinkPHP的分页实现示例,希望能对您有所帮助。 ### 回答2: layui php ajax分页是指使用layui框架结合phpajax技术来实现分页效果。而layui框架是一款前端UI框架,提供了丰富的UI组件和简洁的API接口,方便开发人员构建美观的前端页面。 要实现layui php ajax分页,首先需要在PHP中编写查询数据的代码,然后使用ajax发送请求获取数据。在前端页面,使用layui的表格组件(非动态表格)显示数据。下面是具体的实现步骤: 1. 在PHP中编写查询数据的代码,将查询到的数据进行分页处理。可以使用SQL语句中的LIMIT关键字来实现分页,也可以使用PHP的数组分页函数进行处理。 2. 编写前端页面的HTML结构,引入layui的相关文件。 3. 在前端页面中使用layui的表格组件来显示数据。可以使用表格组件的render方法来渲染表格,并且设置分页参数。 4. 使用ajax发送请求获取数据。可以使用layui的table模块提供的on和reload方法来实现数据的异步加载和刷新。 5. 在ajax请求返回数据后,调用layui的表格组件的reload方法重新渲染表格,并将获取到的数据显示出来。 通过以上步骤,就可以实现layui php ajax分页的效果。在thinkphp5.1中实现分页的方法与上述步骤类似,只需要根据thinkphp5.1的语法进行相应的调整即可。例如,使用thinkphp5.1的分页类来处理数据分页,并使用thinkphp5.1提供的模板引擎来渲染前端页面。 总结来说,layui php ajax分页可以通过结合layui框架、phpajax技术来实现,以提供用户友好的分页效果,带来良好的用户体验。而在thinkphp5.1中实现分页则需要根据thinkphp5.1的语法进行相应的调整。 ### 回答3: Layui是一个轻量级的前端UI框架,结合PHPAjax可以实现分页功能。以下是在Layui和ThinkPHP5.1框架中实现非动态表格分页的方法: 首先,确保已经引入Layui和ThinkPHP5.1的相关文件。 然后,创建一个PHP文件,命名为index.php。在该文件中,引入Layui相关的样式和脚本文件,以及ThinkPHP5.1的相关文件。 接下来,在index.php文件中创建一个div容器,用于显示分页数据。并在里面编写一个table表格,用于展示数据。 在PHP文件中,编写控制器代码,用于处理分页请求和数据的获取。在控制器代码中,通过Ajax请求后台接口,获取到分页数据,并将数据返回到前端。 在前端代码中,编写JavaScript代码,绑定Layui的分页组件。在分页组件中,调用控制器的接口,请求分页数据,并将数据展示在table表格中。 最后,在控制器中,编写方法用于处理分页请求。在该方法中,使用ThinkPHP5.1的分页功能,根据当前页数和每页显示的数据量,从数据库中获取到对应的数据,并将数据返回给前端。 需要注意的是,分页的实现还需要根据具体的业务逻辑进行相应的调整和修改。以上只是一个大致的思路和步骤,具体实现还需要根据具体的需求进行相应的修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值