javascript - 如何实现ajax和js的无刷新分页效果
实现ajax数据请求的分页效果:类似图片上!代码如何实现
回复内容:
实现ajax数据请求的分页效果:类似图片上!代码如何实现
ajax请求某一页的数据,然后把表格清空,然后把新数据组成表格塞回去。
1.css做出分页样式;
2.监听事件,传递分页参数pageNo,在ajax回调里面写列表的重新拼装和渲染。
思路就是触发分页事件的时候进行一次ajax请求,成功后更新表格就行了:
ele.onclick = function() { //假设ele是点击后触发分页的元素
var index = ele.pageIndex;
var xhr = new XMLHttpRequest();
xhr.open('GET', 'URL', true);//URL应包含分页信息,比如pageIndex,pageSize等
xhr.onreadystatechange = function() {
if ( xhr.status == 200 && xhr.readyState == 4 ) {
updateTable(xhr.responseText); //这个updateTable就是你用来更新表格的方法,在本页面执行,不会刷新
}
}
xhr.send('');
}
当点击页码时:
前端传值: currentPage(当前请求第几页),perPage(每页多少条数据);
后端返回值: pages(总共页数),data(返回数据);
前端在第一次请求数据的时候根据后端返回的总页数,展示到前端翻页栏;若是未使用数据绑定,如react,vue,knockout等,下次请求时将表哥清空再循环插入html即可,若是使用了数据绑定则只需重新设置返回的数据即可重新渲染页面。
觉得题主应该掌握四点知识:
ajax
php的分页技术
mysql的limit
jquery
详解:
ajax
点击页码的时候触发一个click
(jQuery
)事件,然后获取到这个页码的值,发送到后端php接收到这个页码的参数,根据当前页码和显示条数进行计算
$page = $_GET['page']; //当前页码
$page_num = 12; //显示条数
$offect = $page_num * ( $page - 1 );
$sql = "select * from table limit $offset,$page_num"; //3、sql的limit语法
//组装成html返回给前台
echo $html;exit;
4.前端替换列表内容对应的div即可。
这是老方法,不知道最新的方法是怎样的。
以上。对了,这样的问题百度一大把资源。真的,不骗你。
ajax用法请查api
至于无刷新分页,你只要把table区域内的数据,清空并替换即可,题主看看jquery,基本就能实现了,很简单...