Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
- 格式:doc
- 大小:18.00 KB
- 文档页数:2
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无刷新分页请求的原理在Web开发中,经常会遇到需要分页加载数据的场景,而传统的分页方式是通过刷新整个页面来加载新的数据。
然而,这种方式会导致用户体验较差,页面加载速度慢,因此,Ajax无刷新分页请求成为了一种常见的解决方案。
Ajax是一种能够在不重新加载整个页面的情况下与服务器进行数据交互的技术。
它通过在后台与服务器进行异步通信,实现了在页面不刷新的情况下更新部分内容的效果。
而无刷新分页请求就是利用了Ajax的这个特性,通过局部刷新页面来加载新的数据,从而实现分页的效果。
实现无刷新分页请求的关键在于前端和后端的配合。
首先,前端需要监听用户的操作,当用户点击分页按钮时,前端会发起一个Ajax 请求,向服务器请求新的数据。
这个请求通常会携带一些参数,如当前页码、每页显示的数据条数等。
然后,服务器接收到这个请求后,会根据参数进行相应的处理,从数据库中查询对应的数据,并将数据返回给前端。
前端接收到服务器返回的数据后,会使用JavaScript动态地更新页面的内容,将新的数据展示给用户。
这个过程中,只有部分页面内容会被刷新,而不会影响其他部分的显示。
这样就实现了无刷新的分页效果。
在实现无刷新分页请求时,还需要注意一些细节。
首先,前端需要对用户的操作进行合理的处理,避免用户频繁地点击分页按钮导致多次请求,可以通过设置一个延时器,保证用户在一段时间内只能点击一次分页按钮。
其次,需要给用户提供一些反馈信息,如加载中的动画或提示文字,以便用户知道数据正在加载中。
最后,还要考虑性能优化的问题,如合理地设置缓存、减少请求次数等,以提升用户的体验。
总结起来,Ajax无刷新分页请求通过前端与后端的配合,利用Ajax 技术在不刷新整个页面的情况下加载新的数据,实现了分页的效果。
这种方式可以提升用户的体验,减少不必要的页面刷新,对于数据量较大或需要频繁分页的场景尤为适用。
在实际开发中,我们可以根据具体的需求和技术栈选择合适的方法和工具来实现无刷新分页请求。
商品评论无刷新分页”的代码,详细描述功能
实现过程;
商品评论无刷新分页的代码可以通过使用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无刷新分页,已经是一个大家比较熟悉的事物了,大概就是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 做数据搜索需要带关键词分页,如何将查询条件带⼊到分页中,本⽂详细介绍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 {}测试结果:。
查询功能是开发中最重要的一个功能,大量数据的显示,我们用的最多的就是分页。
在 中有很多数据展现的控件,比如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新闻评论系统,带分页。
昨天在网上找了半天发现没什么好用的,于是干脆自己动手写了一个,希望对大家有所帮助。
测试环境: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把这个单独放到一个文件中,主要是为了便于修改,如果新闻页面数量很多的话。
这篇文章主要介绍了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相结合实现动态无刷新分页效果的相关知识,希望对大家有所帮助。