Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
JS+Ajax+Jquery实现页面无刷新分页以及分组超强的实现
![JS+Ajax+Jquery实现页面无刷新分页以及分组超强的实现](https://img.taocdn.com/s3/m/be814934abea998fcc22bcd126fff705cc175c22.png)
JS+Ajax+Jquery实现页⾯⽆刷新分页以及分组超强的实现复制代码代码如下:<%@ Page language="c#" Codebehind="GroupText.aspx.cs" AutoEventWireup="false" Inherits="test1.GroupText" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><HTML><HEAD><title>GroupText</title><meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"><meta name="CODE_LANGUAGE" Content="C#"><meta name="vs_defaultClientScript" content="JavaScript"><meta name="vs_targetSchema" content="/intellisense/ie5"><LINK href="css/wmh.css" href="css/wmh.css" type="text/css" rel="stylesheet"><script src="js/jquery.js" type="text/javascript"></script><script src="js/Common.js" type="text/javascript"></script><script src="js/getCommonTable.js" type="text/javascript"></script><script src="js/GroupText.js" type="text/javascript"></script><script language="javascript"><!--var ecid = '100001';var jpstr = "";var pageSize = 8;// --></script></HEAD><body MS_POSITIONING="GridLayout"><form id="Form1" method="post" runat="server"><div class="listDiv" style="height:100%; PADDING-TOP: 2px"><table cellSpacing="0" cellPadding="0" width="100%" border="0"><tr class="dg_header"><td style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; WIDTH: 10%; BORDER-BOTTOM: 1px solid; TEXT-ALIGN: center" >活动名称</td><td style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; WIDTH: 10%; BORDER-BOTTOM: 1px solid; TEXT-ALIGN: center">发送⽅</td><td style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; WIDTH: 10%; BORDER-BOTTOM: 1px solid; TEXT-ALIGN: center">接收⽅</td><td style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; WIDTH: 12%; BORDER-BOTTOM: 1px solid; TEXT-ALIGN: center">发送时间</td><td style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; WIDTH: 38%; BORDER-BOTTOM: 1px solid; TEXT-ALIGN: center">发送内容</td><td style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; WIDTH: 10%; BORDER-BOTTOM: 1px solid; TEXT-ALIGN: center">积分</td><td style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; WIDTH: 10%; BORDER-BOTTOM: 1px solid; TEXT-ALIGN: center">状态</td></tr><tr><td class="dg_line" style="BORDER-BOTTOM: 0px solid" style="BORDER-BOTTOM: 0px solid" vAlign="top" width="100%" colSpan="7"height="100%"><div id="divcontent" style="WIDTH: 100%; HEIGHT: 100%" align="left"></div></td></tr><tr><td class="dg_line" style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid" style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid"width="100%" colSpan="10"><table width="100%"><tr><td class="pgtext">共<span id="recordcount" style="COLOR: red" style="COLOR: red">0</span>条记录 ⽬前第<span id="curpageindex" style="COLOR: red" style="COLOR: red">0</span> <fontcolor="red">/</font><span id="pgcount" style="COLOR: red" style="COLOR: red">0</span>页 <input class="pageText" id="gototxt" type="text" maxLength="10" name="gototxt" runat="server"><input id="gotopg" type="button" class="goBtn"></td><td align="right"><IMG id="btnfirst" style="CURSOR: hand" style="CURSOR: hand" alt="⾸页"src="Images/first.gif"><IMG id="btnpre" style="CURSOR: hand" style="CURSOR: hand" alt="上⼀页"src="Images/btn_pre.gif" > <IMG id="btnnext" style="CURSOR: hand" style="CURSOR: hand" alt="下⼀页"src="Images/btn_next.gif" ><IMG id="btnlast" style="CURSOR: hand" style="CURSOR: hand" alt="尾页"src="Images/btn_last.gif" ></td></tr></table></td></tr></table></div></form></body></HTML>Common.js复制代码代码如下:Common.js://时间格式化function getDateByFormat(oldDate){var Dy = oldDate.getFullYear();var Dm = oldDate.getMonth()+1;var Dd = oldDate.getDate();if(Dm<10){Dm = "0" + Dm;}if(Dd<10){Dd = "0" + Dd;}var newDate = Dy+'-'+Dm+'-'+Dd;return newDate;}//⽇期-时间格式化function getDateTimeByFormat(oldDate){var Dy = oldDate.getFullYear();var Dm = oldDate.getMonth()+1;var Dd = oldDate.getDate();var Dh = oldDate.getHours();var Dmi = oldDate.getMinutes(); var Ds = oldDate.getSeconds(); if(Dm<10)Dm = "0" + Dm;if(Dd<10)Dd = "0" + Dd;if(Dh<10)Dh = "0" + Dh;if(Dmi<10)Dmi = "0" + Dmi;if(Ds<10)Ds = "0" + Ds;var newDate = Dy+'-'+Dm+'-'+Dd+' '+Dh+':'+Dmi+':'+Ds;return newDate;}//只能输⼊数字function txtnumber(){if ((event.keyCode >57) || (event.keyCode <48))return false;else return true;}//只能输⼊数字和字母function txtnumchar(){ //65- 90 97-122var kcode = event.keyCode;if (kcode >= 48 && kcode <= 57)return true;else if(kcode >= 65 && kcode <= 90)return true;else if (kcode >= 97 && kcode <= 122)return true;elsereturn false;}getCommonTable.js复制代码代码如下:getCommonTable.js//获取table头function getTableHeadByWidth(widthSize,ids){var Tableone = "<table id='tab"+ids+"' border='0' cellspacing='0' cellpadding='0' ";var Tabletwo = ">";if (widthSize == "")return Tableone + Tabletwo;elsereturn Tableone+"width="+widthSize+Tabletwo;}//获取第⼀个tr td 传⼀个宽度值function getTrAndTdFirstByCWidth(classname,widthSize){var tdone = " <tr ";var tdtwo = "><td style="BORDER-BOTTOM: 1px solid;" style="BORDER-BOTTOM: 1px solid;" align='center' "; var tdthr = " > ";if (classname =="")tdone += tdtwo;elsetdone+=" class ='"+classname+"' "+tdtwo;if (widthSize == "")tdone += tdthr;elsetdone += " width="+widthSize+tdthr;return tdone;}//获取下⼀个TD,传⼀个宽度值function getTdNextByWidth(widthSize){var tdone = " </td><td style=" BORDER-BOTTOM: 1px solid" style=" BORDER-BOTTOM: 1px solid" align='center' ";var tdtwo =">";if (widthSize =="")return tdone+tdtwo;elsereturn tdone+"width="+widthSize+tdtwo;}//获取最后⼀个tdfunction getTdLastByWidth(widthSize){var tdone = " </td><td style=" BORDER-BOTTOM: 1px solid" style=" BORDER-BOTTOM: 1px solid" align='center' ";var tdtwo =">";if (widthSize =="")return tdone+tdtwo;elsereturn tdone+"width="+widthSize+tdtwo;}//获取最后⼀个tr/tdfunction getTrAndTdLast(){return " </td></tr>";}//获取table尾function getTableLast(){return "</table>";}//获取imgfunction getImgByParams(imgUrl,altstr,eventName,eventParams,imgid){var one = "<img border='0' style="CURSOR: hand" style="CURSOR: hand"";if (imgUrl != "")one += "src='"+imgUrl+"'";if (altstr != "")one += "alt='"+altstr+"'";if(imgid != "")one += "id='"+imgid+"'";one += "onclick='"+eventName+"("+eventParams+");'> ";return one}//--------排序---------------------------//通过字段的内容排序SortByBtnidAndCellName=function(btnId,cellName,celltype){var way = getOpType(btnId);//0为正。
ajax无刷新分页请求的原理
![ajax无刷新分页请求的原理](https://img.taocdn.com/s3/m/1f85c39c0129bd64783e0912a216147917117ec4.png)
ajax无刷新分页请求的原理Ajax无刷新分页请求的原理在Web开发中,经常会遇到需要分页加载数据的场景,而传统的分页方式是通过刷新整个页面来加载新的数据。
然而,这种方式会导致用户体验较差,页面加载速度慢,因此,Ajax无刷新分页请求成为了一种常见的解决方案。
Ajax是一种能够在不重新加载整个页面的情况下与服务器进行数据交互的技术。
它通过在后台与服务器进行异步通信,实现了在页面不刷新的情况下更新部分内容的效果。
而无刷新分页请求就是利用了Ajax的这个特性,通过局部刷新页面来加载新的数据,从而实现分页的效果。
实现无刷新分页请求的关键在于前端和后端的配合。
首先,前端需要监听用户的操作,当用户点击分页按钮时,前端会发起一个Ajax 请求,向服务器请求新的数据。
这个请求通常会携带一些参数,如当前页码、每页显示的数据条数等。
然后,服务器接收到这个请求后,会根据参数进行相应的处理,从数据库中查询对应的数据,并将数据返回给前端。
前端接收到服务器返回的数据后,会使用JavaScript动态地更新页面的内容,将新的数据展示给用户。
这个过程中,只有部分页面内容会被刷新,而不会影响其他部分的显示。
这样就实现了无刷新的分页效果。
在实现无刷新分页请求时,还需要注意一些细节。
首先,前端需要对用户的操作进行合理的处理,避免用户频繁地点击分页按钮导致多次请求,可以通过设置一个延时器,保证用户在一段时间内只能点击一次分页按钮。
其次,需要给用户提供一些反馈信息,如加载中的动画或提示文字,以便用户知道数据正在加载中。
最后,还要考虑性能优化的问题,如合理地设置缓存、减少请求次数等,以提升用户的体验。
总结起来,Ajax无刷新分页请求通过前端与后端的配合,利用Ajax 技术在不刷新整个页面的情况下加载新的数据,实现了分页的效果。
这种方式可以提升用户的体验,减少不必要的页面刷新,对于数据量较大或需要频繁分页的场景尤为适用。
在实际开发中,我们可以根据具体的需求和技术栈选择合适的方法和工具来实现无刷新分页请求。
基于ajax+php+mysql的无刷新分页工具的研究与实现
![基于ajax+php+mysql的无刷新分页工具的研究与实现](https://img.taocdn.com/s3/m/2f728ad4bcd126fff6050bf6.png)
//此处包含配置文件,连接服务器,选择数据库。(代码略)
约束结果集中的行数。语法为:
$pageSize=5; // 每页显示的记录行数
limit [offset,]count
$pageCodeNum=6; // 分页导航页码的个数
其中,offset 参数指定要返回的第一行的偏移量。第一行
$sqlQuery="select 字段列表 from 表 ……"; //查询语句,
分页的原理其实很简单,其实质就是按照提供的起始和 的区域,假设是 id 为“result”的 DIV。该区域将填充 AJAX 返
结束位置分批显示数据表记录。因此,用户提交的关键信息 回的信息。该信息是对原有的数据列表和分页导航的重写。
就是当前的页码$pageNow 和每次要显示的记录条数$pageS- 因此,需要将原有的数据列表和页面导航隐藏。
ize。其中,$pageNow 的值就是分页导航中的页码数,它决定
在数据显示页还将调用分页处理函数返回的分页信息,
了在数据表中读取数据的起始位置;而$pageSize 的值就决定 从而显示分页导航。基本结构如下:
了从起始位置向后读取的范围。
<? php
在 MYSQL 中构造 SQL 查询语句时,limit 子句可以用来
与最大导航页码处于同一个页面导航条内。如图 6 中的页码
//显示分页函数 page 返回的分页导航信息(代码略)
“17”。此时:
</div>
前段页码数 $forward = $pageNow - $pageCodeNum
<? php //关闭连接(代码略)?>
当前页码段中的页码就是从 $forward + 1 到 $pageTotal
Ajax写分页查询(实现不刷新页面)
![Ajax写分页查询(实现不刷新页面)](https://img.taocdn.com/s3/m/c335552cbdd126fff705cc1755270722192e5999.png)
var da = 1;
// 最小页
$.ajax({
async:false,
//
做成同步
url:"zys.php", dataType:"TEXT", success:function(data){
da = data; //最大页数
} });
}
接下来做查询总页数的php页面:
<?php //查询总页数 include ("db.class.php"); $db = new db(); $sql = "select count(*) from min"; $zts = $db->strquery($sql); //总条数 echo ceil($zts/3); //ceil向上取整
可以,没毛病 7.做页数的点击事件,实现点击页数跳转到该页数并显示数据,还要更新列表; 先给数字列表加上一个class
s += " <li class='active list'><a>" + i + "</a></li>"
然后写方法:
//给列表加上点击事件
$(".list").click(function(){
//
alert(da);
if(page<da)
{
//如果不是第一页
page = parseInt(page) + 1;
}
//
page获取了当前页,重新加载以下方法
//调用load方法
load();
//把加载数据封装成一个方法
商品评论无刷新分页”的代码,详细描述功能实现过程;
![商品评论无刷新分页”的代码,详细描述功能实现过程;](https://img.taocdn.com/s3/m/d5b7ebcebb0d4a7302768e9951e79b89680268c0.png)
商品评论无刷新分页”的代码,详细描述功能
实现过程;
商品评论无刷新分页的代码可以通过使用Ajax和服务器端数据处理技术实现。
实现过程如下:
1. 在前端页面HTML中创建一个用于展示评论的容器,例如一个`<div>`元素。
2. 在JavaScript代码中使用Ajax技术向服务器端发送请求,获取评论数据。
可以使用`XMLHttpRequest`对象或者更方便的第三方库(例如jQuery的`$.ajax`)来发送请求。
3. 在服务器端,接收到评论数据请求后,根据需要的页码和每页展示的评论数量,从数据库或其他数据源中获取相应的评论数据。
4. 将获取到的评论数据转换为JSON格式,并发送回前端页面。
5. 在前端页面的JavaScript代码中,接收到服务端返回的评论数据后,解析JSON数据,并将评论内容渲染到评论容器中。
6. 在前端页面上添加页面导航元素,例如一个包含页码数字的HTML元素或一个包含“上一页”和“下一页”按钮的HTML元素。
7. 为页面导航元素绑定事件监听器。
当用户点击或触发相关导航元素时,通过Ajax向服务器端发送请求,请求指定页码和每页评论数量的评论数据。
8. 服务器端接收到分页请求后,执行步骤3中的逻辑,返回对应页码的评论数据给前端。
9. 前端接收到服务端返回的评论数据后,执行步骤5中的逻辑,更新评论容器中的评论内容。
通过以上步骤的实现,即可实现商品评论的无刷新分页功能。
用户在浏览评论时,可以方便地切换到不同的评论页码,同时页面的刷新和加载时间也得到了优化。
ajax无刷新分页的性能优化方法
![ajax无刷新分页的性能优化方法](https://img.taocdn.com/s3/m/b84333e53186bceb19e8bbbf.png)
ajax无刷新分页,已经是一个大家比较熟悉的事物了,大概就是web前端页面上有一个js的方法,通过ajax去请求服务器端的分页数据接口,拿到数据后再在页面上创建html 结构,展现给用户,类似于下面这样:?12345678910111213 <script type=”text/javascript”> function getpage(pageindex){ ajax({ url:”remoteinterface.cgi”, method:”get”, data:{pageindex:pageindex}, callback:callback }); } function callback(datalist){ //todo:根据返回的datalist数据创建html结构展现给用户。
} </script>其中,remoteinterface.cgi是一个服务器端的接口。
我们这里限于篇幅,涉及的实例代码可能都不是完整的,只为了把意思表达明白。
ui上,可能会有各种款式的分页控件,大家也都比较熟悉,比如:但无非都是用户点击控件触发这里的getpage(pageindex)方法,这个getpage方法可能不是那么简单。
如果按照代码片段1的写法,我们可以想象,用户每次点击翻页的时候,都会请求一次remoteinterface.cgi,在忽略数据可能有更新的情况下,除了第一次,后面每次getpage(1) 、getpage(2)、getpage(3)等等所触发的远程接口请求以及在网络上往返的数据流量,其实都是重复的、不必要的。
每页第一次请求的时候都可以把这些数据以某种形式缓存在页面上,用户如果有兴趣回头来看之前翻过的页,getpage方法应该先检查本地缓存当中是否包含该页数据,如果有,则直接重新展现给用户,而不是去调用远程接口。
按照这个想法,我们可以把代码片段1修改一下,如下:?12345678910111213141516171819202122232425 <script type=”text/javascript”> var pagedatalist={}; function getpage(pageindex){ if(pagedatalist[pageindex]){ //如果本地的数据列表中包含当前请求页码的数据showpage(pagedatalist[pageindex])//直接展现当前数据} else{ ajax({ url:”remoteinterface.cgi”, method:”get”, data:{pageindex:pageindex}, callback:callback }); } } function callback(pageindex,datalist){ pagedatalist[pageindex]= datalist; //缓存数据showpage(datalist);//展现数据} function showpage(datalist){ //todo:根据返回的datalist数据创建html结构展现给用户。
Thinkphp5之ajax分页实现_paginate()参数详细
![Thinkphp5之ajax分页实现_paginate()参数详细](https://img.taocdn.com/s3/m/76812adddb38376baf1ffc4ffe4733687e21fca2.png)
Thinkphp5之ajax分页实现_paginate()参数详细Thinkphp5 做数据搜索需要带关键词分页,如何将查询条件带⼊到分页中,本⽂详细介绍Thinkphp5 分页带参数⼀、基本使⽤⽅法:$list = Db::name('user')->where('status',1)->paginate(10);⼆、查看thinkphp5 paginate()函数paginate()函数可以带三个参数:$listRows 每页数量数组表⽰配置参数$simple 是否简洁模式或者总记录数如果为true,那么分页的就是只有上⼀页和下⼀页$config 配置参数具体可以⾃⼰传⼊或者在配置⽂件中配置$config 参数具体配置参数描述list_rows每页数量page当前页path url路径query url额外参数fragment url锚点var_page分页变量type分页类名三、解决⽅案:$list = Db::name('user')->where('status',1)->paginate(10,false,['type' => 'Bootstrap','var_page' => 'page',//使⽤jqery ⽆刷新分页'path'=>'javascript:AjaxPage([PAGE]);'//第⼀种⽅法,使⽤数组⽅式传⼊参数'query' => ['keyword'=>$keyword],// 第⼆种⽅法,使⽤函数助⼿传⼊参数// 'query' => request()->param(),]);使⽤时在html模板页相应位置放⼊{$list->render()}<!-- 分页 --><div class="row"><div id="result">{$list->render()}</div></div>此时页⾯⾥会⽣成⼀个页码界⾯.虽然⽅法很简单,但是存在⼀个问题,每次点击页⾯都要刷新,⽤户体验很不好,所以要在tp5原有分页类的基础上加⼀个ajax操作,直接上代码:模板jquery_ajax代码:<script>var AjaxPage = function(page){$.ajax({url:'http://xxx/public/index.php/back/topic/ajaxList',type:'post',dataType:'json',data: {apage:page},success:function(data){//console.log(data)$("#result").html(data.page);}});}</script>控制器controller\Topic.php//显⽰分类管理界⾯public function listAction(){$list = model('Topic')->paginate(10,false,['type' => 'Bootstrap','var_page' => 'page','path'=>'javascript:AjaxPage([PAGE]);',//使⽤函数助⼿传⼊参数'query' => request()->param(),]);// $res = $mem->getList();$this->assign('list',$list);return $this->fetch('list');}public function ajaxListAction(){$page = request()->param('apage');if (!empty($page)) {$rel = model('topic')->paginate(10,false,['type' => 'Bootstrap','var_page' => 'page','page' => $page,'path'=>'javascript:AjaxPage([PAGE]);',]);$page = $rel->render();}return json(['list'=>$rel,'page'=>$page]);}因为使⽤了模型⽅法,还要定义⼀个模型类model\Topic.php<?php/*** Created by PhpStorm.* User: houzhyan* mail: houzhyan@* Locator: http://www.phpclass.top* Date: 2017/10/23* Time: 11:58*/namespace app\back\model;use think\Model;class Topic extends Model {}测试结果:。
asp.net使用AJAX实现无刷新分页
![asp.net使用AJAX实现无刷新分页](https://img.taocdn.com/s3/m/4ad2b66ca8956bec0975e35f.png)
查询功能是开发中最重要的一个功能,大量数据的显示,我们用的最多的就是分页。
在 中有很多数据展现的控件,比如Repeater、GridView,用的最多的GridView,它同时也自带了分页的功能。
但是我们知道用GridView来显示数据,如果没有禁用ViewState,页面的大小会是非常的大的。
而且平时我们点击首页,下一页,上一页,尾页这些功能都是会引起页面回发的,也就是需要完全跟服务器进行交互,来回响应的时间,传输的数据量都是很大的。
AJAX的分页可以很好的解决这些问题。
数据显示Pasing.aspx页面JS代码:代码如下:<script type=text/javascript>var pageIndex = 0;var pageSize = 5;window.onload = AjaxGetData(name,0,5);function AjaxGetData(name, index, size){$.ajax({url: jQueryPaging.aspx,type: Get,data: Name= + name + &PageIndex= + index + &PageSize= + size,dataType: json,success: function (data) {var htmlStr = ;htmlStr +=htmlStr +=htmlStr +=htmlStr += ;htmlStr += //data.cloudfileLists.lengthfor (var i = 0; i < data.cloudfileLists.length; i++){htmlStr += ;htmlStr +=+htmlStr += ;}htmlStr += ;htmlStr += ;htmlStr += ;htmlStr += ;htmlStr += ;htmlStr += ;htmlStr += <table><thead><tr><td>编号</td><td>文件名</td></tr></thead><tbody><tr><td> + data.cloudfileLists[i].FileID + </td><td> + data.cloudfileLists[i].FileName +</td></tr></tbody><tfoot><tr><td colspan="'6'">;htmlStr += <span>共有记录+ data.Count + ;共<span id="'count'"> + (data.Count % 5 == 0 ? parseInt(data.Count / 5) : parseInt(data.Count / 5 + 1)) + </span>页+ </span>;htmlStr += 首页;htmlStr += 前一页;htmlStr += 后一页;htmlStr += 尾页;htmlStr += <input type="'text'"><input type="'button'" value="'跳转'" onclick="'GoToAppointPage(this)'"> ;htmlStr += </td></tr></tfoot></table>;$(#divSearchResult).html(htmlStr);//重写html},error: function (XMLHttpRequest, textStatus, errorThrown) {alert(XMLHttpRequest);alert(textStatus);alert(errorThrown);}});}//首页function GoToFirstPage() {pageIndex = 0;AjaxGetData($(#txtSearch).val(), pageIndex, pageSize);}//前一页function GoToPrePage() {pageIndex -= 1;pageIndex = pageIndex >= 0 ? pageIndex : 0;AjaxGetData($(#txtSearch).val(), pageIndex, pageSize);}//后一页function GoToNextPage() {if (pageIndex + 1 < parseInt($(#count).text())) {pageIndex += 1;}AjaxGetData($(#txtSearch).val(), pageIndex, pageSize);}//尾页function GoToEndPage() {pageIndex = parseInt($(#count).text()) - 1;AjaxGetData($(#txtSearch).val(), pageIndex, pageSize);}//跳转function GoToAppointPage(e) {var page = $(e).prev().val();if (isNaN(page)) {alert(请输入数字!);}else {var tempPageIndex = pageIndex;pageIndex = parseInt($(e).prev().val()) - 1;if (pageIndex < 0 || pageIndex >= parseInt($(#count).text())) {pageIndex = tempPageIndex;alert(请输入有效的页面范围!);}else {AjaxGetData($(#txtSearch).val(), pageIndex, pageSize);}}}</script>同一页面HTML代码:jQueryPaging.aspx页面的CS代码如下:引用这个命名空间:using System.Web.Script.Serialization;//JavaScriptSerializer要用的。
基于AJAX技术实现无刷新分页
![基于AJAX技术实现无刷新分页](https://img.taocdn.com/s3/m/3c3a733fb4daa58da0114a2c.png)
d o c u me n t . g e t El e me n t B y I d ( ” b t n C a n c e l ” 1 . 之 后 才 更 新 相 应 部分 的 内 容 。 这 种 更 新 的 速 度
o n c l i e k= h i d e P a n e l ;
非 常 快 ,几 乎就 是 一 瞬 间 ,用 户 几 乎 感 觉 不 到 。
d o c u me n t . g e t El e me n t By I d ( ” b t n OK” 1 . 在不重新载入整个 页面 的情 况下更新页面。因
o n c l i e k= d o Up d a t e Or Ad d ;
S q l Da t a Ad a p t e r ( ” g e t P a g e Da t a ” , c o r m ) ; S q l P a r a me t e r [ ] p a r a s {
/ / 调 用 加 载 列 表 的方 法 l o a d L i s t 0;
中的数据 编辑交给 AJ AX来执行。
2 无刷 新技 术实现 分页
2 . 1在D B H e 1 p e 层建一个方法,返回数据 表
( 2 )可 以使用户 的等待时 间减少。尤 其 是 不会像 R e l o a d事件 那样 ,当要 读取 大量 数
V a l u e ) ;
/ / a l e r t ( 1 i s t J s o n Ar r . 1 e n g t h ) ;
/ / 将数组里面的值放到网页中去
l o a d T a b l e Da t a ( 1 i s t J s o n Ar r ) ;
PHP+Ajax无刷新带分页新闻评论系统
![PHP+Ajax无刷新带分页新闻评论系统](https://img.taocdn.com/s3/m/e1ebc438376baf1ffc4fad22.png)
Ajax新闻评论系统,带分页。
昨天在网上找了半天发现没什么好用的,于是干脆自己动手写了一个,希望对大家有所帮助。
测试环境:IIS5.1 + PHP5.2.12 + MySQL5.0.88程序说明:本系统只是实现了基本的功能,其他的诸如数据过滤、数据编码和解码,后台审核功能等,根据需要加上就行了。
为了测试方便,本程序没有对验证码进行判断。
特别提醒:本程序使用的是PDO,所以php.ini中的extension=php_pdo.dll和extension=php_pdo_mysql.dll必须打开。
如果出现问题,请仔细检查各个页面的路径是否正确。
另外某些字符会影响程序的执行,所以在使用的时候最好对数据进行编码。
新闻页面:index.html<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gbk" /><title>无标题文档</title><style type="text/css">body{font-family:"Times New Roman","宋体",Arial;font-size:14px;color:#333;}.plunshow{font-size:14px;color:#333;margin:10px;}.plunpage{font-size:12px;color:#333;margin:10px;}</style><script language = "javascript" src ="ajax_navagation.js"></script><script language = "javascript" src ="plun_zhfl.js"></script></head><body><table width="90%" border="0" cellpadding="0" cellspacing="0"><tr><td height="80" align="center">新闻正文</td></tr><tr><td align="left"> </td></tr><tr><td align="center" height="30"><div id="plunbox"></div><script language="javascript">var newsid = 106; //新闻IDvar clname = '科技'; //新闻分类open_url("plun_box.php","plunbox");getplun(1); //因为要分页,所以加了一个参数表示第几页</script></td></tr></table></body></html>js文件:ajax_navagation.js/*Design By Xinge At 2007-05-22Demo:/test/ajax2/test.htm*/var please_wait = null;function open_url(url, target) {var link;if (!document.getElementById) return false;if (please_wait != null) document.getElementById(target).innerHTML = please_wait;if (window.ActiveXObject) {try{link = new ActiveXObject("Msxml2.XMLHTTP");}catch(e){link = new ActiveXObject("Microsoft.XMLHTTP");}} else if (window.XMLHttpRequest) link = new XMLHttpRequest();if (link == undefined) return false;link.onreadystatechange = function() { response(link, url, target); }link.open("GET", url, true);link.send(null);}function response(link, url, target) {//alert(link.readyState + ' -- ' + target);//alert(link.readyState);if (link.readyState < 4) {document.getElementById(target).innerHTML = "<img src='../images/loading.gif' alt='loading...'><span style='padding-left:5px; font-size: 14px; color:#FF9900';>载入中,请稍后...</span>";} else {//document.getElementById(target).innerHTML = (link.status == 200) ? link.responseText : "Ooops!! A broken link! Please contact the webmaster of this website and give him the fallowing errorcode: " + link.status;document.getElementById(target).innerHTML = (link.status == 200) ? link.responseText : "Ooops!! A broken link!";}}function set_loading_message(msg) {please_wait = msg;}plun_zhfl.js//*************************************************function addplun(){document.getElementById("plunact").disabled = true;var actdelay = "document.getElementById('plunact').disabled = false";setTimeout(actdelay,15000);var username = document.getElementById("username").value;var userface = document.getElementById("userface").value;var pluncont = document.getElementById("pluncont").value;var verifcode = document.getElementById("verifcode").value;if (username=="") {alert("用户名不能为空!");window.history.back();} else if (pluncont.length<=2 || pluncont.length>300) {alert("字数应为5-300个!");window.history.back();} else {open_url("plun_zhfl.php?act=add&newsid="+newsid+"&clname="+clname+"&verifcode=" +verifcode+"&username="+username+"&userface="+userface+"&pluncont="+convtobr(pluncont ),null);}getplun(1);}//*************************************************function getplun(page){open_url("plun_zhfl.php?act=get&newsid="+newsid+"&clname="+clname+"&page="+page ,"plunshow");}//*************************************************function convtobr(ss){var r, re;re = /\r/g;r = ss.replace(re, "<br />");re = /\n/g;r = ss.replace(re, "<br />");return(r);}//*************************************************function showface(){if(document.getElementById("facebox").style.display=="none"){document.getElementById("facebox").style.display = "block";} else {document.getElementById("facebox").style.display = "none";}}//*************************************************function chosface(face){document.getElementById("facepic").src = "plunface/"+face;document.getElementById("userface").value = face;showface();}评论显示页:plun_box.php把这个单独放到一个文件中,主要是为了便于修改,如果新闻页面数量很多的话。
php+ajax实现无刷新数据分页例子
![php+ajax实现无刷新数据分页例子](https://img.taocdn.com/s3/m/125ebb56c950ad02de80d4d8d15abe23492f034a.png)
php+ajax实现无刷新数据分页例子php+ajax实现无刷新数据分页例子无刷新功能我们用到很多很多的,下面我就来给各位介绍一个实例,就是实现php+ajax实现无刷新数据分页了,例子非常的简单大家只要按流程来操作就可以了哦.index.php 文件代码如下:<?phpheader("Content-type: text/html;charset=GBK");//输出编码,避免中文乱码><html><head><title>ajax分页演示</title><script language="javascript" src="ajaxpg.js"></script><link rel="stylesheet" type="text/css" href="page.css"></head><body><div id="result"><?php$page=isset($_GET['page'])?intval($_GET['page']):1; //这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。
$num=3; //每页显示10条数据$db=mysql_connect("localhost","root","123456"); //创建数据库连接mysql_select_db("demo",$db) or die("数据库链接错误"); //选择要操作的数据库mysql_query("set names gbk");/*首先咱们要获取数据库中到底有多少数据,才能判断具体要分多少页,具体的公式就是总数据库除以每页显示的条数,有余进一。
跟我学AJAX技术——如何应用AJAX实现无刷新查询功能的Web应用示例(第一部分)
![跟我学AJAX技术——如何应用AJAX实现无刷新查询功能的Web应用示例(第一部分)](https://img.taocdn.com/s3/m/7b00d6c9b9f3f90f76c61b19.png)
1.1跟我学AJAX技术——如何应用AJAX实现无刷新查询功能的Web应用示例(第一部分)1.1.1构建出本示例的Web应用项目1、新建一个Web应用的Project项目的名称为StrutsAJAXWebApp,同时再添加一个Web组件,其Context的名称为StrutsAJAXWebApp。
2、将产生出下面的状态3、添加Struts框架相关的系统包文件4、在该Web应用中添加一个index.jsp页面(1)再添加index.jsp 页面(2)设计该页面的内容<%@ page language="java" pageEncoding="gb2312"%><%@ taglib uri="/tags-bean" prefix="bean" %> <%@ taglib uri="/tags-html" prefix="html" %><%@ taglib uri="/tags-tiles" prefix="tiles" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html:html lang="true"><head><html:base /><title>index.jsp</title><script language="javascript" src="webajax.js"></script><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><html:form action="/searchCity.do" method="post" ><table border="0"><tr><td>请输入您的查询的城市名称:</td><td><html:text property="cityNameInputID" /></td></tr><tr><td colspan="2" align="center"><html:button property="sendButton" value="异步发送"onclick="javascript:sendData();" /> <html:submit property="submitButton" value="同步发送" /></td></tr></table></html:form><div id="showResultMessage"></div></body></html:html>注意:上面的带有id的div标签的主要作用是实现对显示的内容进行定位。
bootstrap-paginator分页示例源码MVC
![bootstrap-paginator分页示例源码MVC](https://img.taocdn.com/s3/m/0be1fc6edcccda38376baf1ffc4ffe473368fd80.png)
Controller
using LeaRun.Business; using LeaRun.Business.BaseUtility; using LeaRun.Entity; using LeaRun.Utilities; using System.Collections.Generic; using System.Web.Mvc;
});
}
$(function () { initTable();
}); </script> } <div class="row clearfix"> <div class="col-md-12 column">
<table class="table"> <thead> <tr> <th> 编号 </th> <th> 名称 </th> <th> 菜单 </th>
分页
@using LeaRun.Entity; @{
#region List<Base_Module> data = ViewBag.Data as List<Base_Module>; if (data == null) {
data = new List<Base_Module>(); } int btotel = ViewBag.BTotel; #endregion } <input id="datatotle" type="text" hidden="hidden" value="@ViewBag.Totle"/> @for (int i = 0; i < data.Count; i++) { <tr class="@(i%2==0?"active":"")">
一款基于Bootstrap的js分页插件bootstrap-paginator使用实例
![一款基于Bootstrap的js分页插件bootstrap-paginator使用实例](https://img.taocdn.com/s3/m/25375245ce84b9d528ea81c758f5f61fb736286f.png)
⼀款基于Bootstrap的js分页插件bootstrap-paginator使⽤实例Bootstrap Paginator是⼀款基于Bootstrap的js分页插件,功能很丰富。
它提供了⼀系列的参数⽤来⽀持⽤户的定制,提供了公共的⽅法可随时获得插件状态的改变,以及事件来监听⽤户的动作。
浏览器兼容性: Firefox 5+, Chrome 14+, Safari 5+, Opera 11.6+ and IE 7+。
1.引⼊css和js⽂件注意:分页样式⽤BootStrap 的,如果单独使⽤,请去BootStrap中把分页样式拷出来。
jQuery版本需要1.8及以上。
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css"/><script src="assets/jquery/jquery.min.js"></script><script src="assets/bootstrap/js/bootstrap.min.js"></script><script src="assets/bootstrap-paginator/bootstrap-paginator.min.js"></script>2.html 把下⾯的分页盒⼦放到table下⾯<!-- $("pagination")的使⽤:Bootstrap 是2.X版本使⽤div元素,3.X版本使⽤ul元素,本项⽬使⽤的bootstrap3.7 --><nav class="text-right"> <!--text-right 右对齐,bootstrap中样式--><ul class="pagination"></ul></nav>3.初始化分页--渲染数据后调⽤分页⽅法将获取的data传进来⽅便计算分页//分页功能var setPaginator = function (data) {$('.pagination').bootstrapPaginator({bootstrapMajorVersion: 3, //对应bootstrap版本size: 'small', //分页⼤⼩currentPage: data.page, //当前页numberOfPages: 3, //显⽰的页数totalPages: Math.ceil(data.total / data.size), // 总页数/*** 分页点击事件* @param event [jquery对象]* @param originalEvent [dom原⽣对象]* @param type [按钮类型]* @param page [点击按钮对应的页码]*/onPageClicked: function (event, originalEvent, type, page) {render(page);//根据点击页数渲染页⾯}})};4.备注4.1 GitHub 官⽹地址:4.2 PaginatorAPI⽂档参数介绍:参数名数据类型默认值描述bootstrapMajorVersion number2搭配使⽤的Bootstrap版本,2.X 的分页必须使⽤div元素,3.X分页的必须使⽤ul 元素。
bootstrappaginator分页插件的两种使用方式实例详解
![bootstrappaginator分页插件的两种使用方式实例详解](https://img.taocdn.com/s3/m/40dc6c2a5627a5e9856a561252d380eb629423f4.png)
bootstrappaginator分页插件的两种使⽤⽅式实例详解分页有两种⽅式:1. 前台分页:ajax⼀次请求获取全部数据,适合少量数据(万条数据以下);$.ajax({type: "GET",url: "",//后台接⼝地址dataType: "json",success: function (msg) {var pages = Math.ceil(msg.data / 5);//data是数据总量var element = $('#id');//对应ul的idelement.bootstrapPaginator({bootstrapMajorVersion: 3,//bootstrap版本currentPage: page,//当前页⾯numberOfPages: 5,//⼀页显⽰⼏个按钮(在ul⾥⾯⽣成5个li)totalPages: pages //总页数});}}); 注意:1. bootstrap3中分页的HTML部分要求使⽤ul标签;2. 前台写分页算法。
2. 后台分页:发送多次ajax,每次获取指定页数的数据(万条数据以上)。
$('#id').bootstrapPaginator({bootstrapMajorVersion: 3,//bootstrap版本currentPage: 1,//当前页码totalPages: ,//总页数(后台传过来的数据)numberOfPages: 5,//⼀页显⽰⼏个按钮itemTexts: function (type, page, current) {switch (type) {case "first": return "⾸页";case "prev": return "上⼀页";case "next": return "下⼀页";case "last": return "末页";case "page": return page;}},//改写分页按钮字样onPageClicked: function (event, originalEvent, type, page) {$.ajax({url: '../../interface/xw_zxdt_list.php',type: 'post',data: {page: page},dataType: 'json',success: function (data) {tplData(data);//处理成功返回的数据}});}}); 注意:1. bootstrap3中分页的HTML部分要求使⽤ul标签;2. 后台写分页算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这篇文章主要介绍了Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果,非常不错,具有参考借鉴价值,感兴趣的朋友一起看下吧
Bootstrap Paginator分页插件下载地址:
DownloadVisit Project in GitHub
1.这是需要分页的页面放的js函数:
<span style="font-size:14px;">function paging(page){
$.ajax({
type: "GET",
url: "${ctx}/api/v1/user/1/"+(page-1)+"/5",
dataType:"json",
success: function(msg){
....//省略(查询出来数据)
}
});
$.ajax({
type: "GET",
url:"${ctx}/api/v1/user/count/1",
dataType:"json",
success:function(msg){
var pages = Math.ceil(msg.data/5);//这里data里面有数据总量
var element = $('#pageUl');//对应下面ul的ID
var options = {
bootstrapMajorVersion:3,
currentPage: page,//当前页面
numberOfPages: 5,//一页显示几个按钮(在ul里面生成5个li)
totalPages:pages //总页数
}
element.bootstrapPaginator(options);
}
});
}</span>
页面:
<span style="font-size:14px;"><ul class="pagination" id="pageUl">
</ul></span>
*li里面自动生成的
2.最重要也是最核心的是要自己改下bootstrap-paginator.js源文件,如下:
<span style="font-size:14px;">onPageClicked: function (event, originalEvent, type, page) {
//show the corresponding page and retrieve the newly built item related to the page clicked before for the event return
var currentTarget = $(event.currentTarget);
switch (type) {
case "first":
currentTarget.bootstrapPaginator("showFirst");
paging(page);
break;
//上一页
case "prev":
currentTarget.bootstrapPaginator("showPrevious");
paging(page);
break;
case "next":
currentTarget.bootstrapPaginator("showNext");
paging(page);
break;
case "last":
currentTarget.bootstrapPaginator("showLast");
paging(page);
break;
case "page":
currentTarget.bootstrapPaginator("show", page);
paging(page);
break;
}
},</span>
*在你点击的页面样式出来后调用paging(page)方法,这里的page源文件里的参数已经有了,直接传!
效果:当样式改变后,直接拿控件的page值进行ajax请求的发送!最后实现无刷新分页。
以上所述是小编给大家介绍的Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果的相关知识,希望对大家有所帮助。