`
zccst
  • 浏览: 3323123 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jquery【插件】 pagination使用

 
阅读更多
作者:zccst


2014年2月23日补充带跳转到指定页的,代码详见附件2
demo里非常全
附链接地址:http://blog.csdn.net/luoyeyu1989/article/details/7000865


原来:
1,下载3个文件
分别为:jquery-1.7.1.js、jquery.pagination.js、pagination.css
//详见附件


2,准备好服务器端返回结果
主要代码如下:
$members = array(array().......);  //详见附件
$total          = count($members);
$pageIndex      = $_POST['pageIndex'];
$items_per_page = $_POST['items_per_page'];

$result = array();
$start = $pageIndex * $items_per_page;
$end   = ($pageIndex+1) * $items_per_page;
if($end > $total){$end = $total;}
for($i = $start; $i < $end; $i++){
	$result[] = $members[$i];
}

print json_encode(array('total'=>$total,'result'=>$result));


3,前端js代码(核心)
var items_per_page = 3;
var page_index = 0;

function getDataList(index){
	var pageIndex = index;
	$.ajax({
		type: "POST",
		url: "members.php",
		data: "pageIndex="+pageIndex+'&items_per_page='+items_per_page,
		dataType: 'json',
		contentType: "application/x-www-form-urlencoded",
		success: function(msg){
			var total = msg.total;
			var html = '<table><tr><th>姓名</th><th>工作时间</th><th>籍贯</th><th>职务</th><th>生卒年</th><th>操作</th></tr>';
			$.each(msg.result,function(i,n){	
				html += '<tr><td>'+n[0]+'</td><td>'+n[1]+'</td><td>'+n[2]+'</td><td>'+n[3]+'</td><td>'+n[4]+'</td>'
				html += '<td><a href=#>删除</a></td></tr>';
			});
			html += '</table>';
			$('#Searchresult').html(html);
			
			//分页-只初始化一次
			if($("#Pagination").html().length == ''){
				$("#Pagination").pagination(total, {
					'items_per_page'      : items_per_page,
					'num_display_entries' : 10,
					'num_edge_entries'    : 2,
					'prev_text'           : "上一页",
					'next_text'           : "下一页",
					'callback'            : pageselectCallback
				});
			}
		}
	});
}


function pageselectCallback(page_index, jq){
	getDataList(page_index);
}

$(document).ready(function(){
	getDataList(page_index);
});


4,前端html
<dl id="Searchresult">
    <dt>Search Results will be inserted here ...</dt>
</dl>
<br style="clear:both;" />
<div id="Pagination" class="pagination"></div>
<br style="clear:both;" />





批注:
(1)jquery.js和jquery.pagination.js插件的加载有先后顺序,不能颠倒。特别是在复杂的页面中。
(2)jquery.pagination.js实现可以有很多种。不同的分页插件,使用时可能会有差别,所以最好有足够的js功底,读懂那些插件是如何实现,以及如何引用。
(3)pagination.css是样式,可以独立出来。也即可以使用很多种不同的样式修饰,不必是给出的那一个。


如果您觉得本文的内容对您的学习有所帮助,您可以微信:

  • 大小: 28.9 KB
分享到:
评论
12 楼 liyonghui160com 2014-07-24  
感谢楼主 明白了 设置一个状态值
11 楼 dzb3688 2014-07-23  
liyonghui160com 写道
zccst 写道
jacking124 写道
byg760 写道
sugen 写道

你这种写法初始化数据的时候会重复加载两次数据。

--第一次

$(document).ready(function(){ 
    getDataList(page_index); 
}); 


---第二次

'callback': pageselectCallback 



楼主这个问题解决吗???

你的问题解决了吗?我遇到了!



这是我很久以前遇到的问题,建议解决办法:不要在回调函数中,写getDataList方法。
function pageselectCallback(page_index, jq){ 
    getDataList(page_index); 

换成另外一种实现方式。



请问如何实现的?




第一次加载且求出数据和分页大小,分页count等,等callback的时候判断一个DOM或input的状态,然后修改即可,
如:
$(document).ready(function() {
        $.ajax({
            type: "get",
            data: "page='' &S=" + S + "&domain=" + domain + "&pagesize="+dopagesize,
            url: "<?php echo $cmsapi; ?>/news",
            dataType: "jsonp",
            jsonp: "callback",
            jsonpCallback: "jsonpNewsList",
            success: function(data) {
                if (data.result == 200) {
                    $('#aresult').empty();
                    if (!$.isEmptyObject(data.data.list)) {

                        $.each(data.data.list, function(a, list) { //装载对应分页的内容
                            $("#aresult").append('<li><span><a href=" detail-' + list.id + '.html"><div>' + list.title + '</div></a></span></li>');
                        });
                    } else {
                        $("#aresult").append('<li><span class="s_check">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;暂无数据</span></li>');
                    }
                }
                /**
                 * 初始化完成 显示分页  
                 */
                initPagination(data.data.pages.itemCount, dopagesize);  

            },
            error: function() {
                alert('参数错误');
            }
        });
    });

function initPagination(count, pagesize) {

        // 创建分页
        $("#Pagination").pagination(count, {//共24条
            num_edge_entries: 1, //边缘页数 隐藏之前或之后个数
            num_display_entries: 4, //主体页数显示8个多出隐藏
            callback: pageselectCallback,
            items_per_page: pagesize, //每页显示的3条目数   $this->pagesize
            prev_text: "前一页",
            next_text: "后一页"
        });
    }

  function pageselectCallback(page_index, jq) {   //page_index 前一个表示您当前点击的那个分页的页数索引值
        /**
         * 扩展: 查询客户的关键字搜索
         */
        var search_type = $("#search_type").val();
        var orderby = $("#orderby").val();
        var keywords = '';
        var search = {};
        var online_ajax = $("#online_ajax").val();

        if (online_ajax != 1) {
            $.ajax({
                type: "get",
                data: "page=" + (page_index + 1) + " &S=" + S + "&domain=" + domain + "&pagesize=3",
                url: "<?php echo $cmsapi; ?>/news",
                dataType: "jsonp",
                jsonp: "callback",
                jsonpCallback: "jsonpNewsList",
                success: function(data) {
                    if (data.result == 200) {
                        $('#aresult').empty();
                        if (!$.isEmptyObject(data.data.list)) {

                            $.each(data.data.list, function(a, list) { //装载对应分页的内容
                                $("#aresult").append('<li><span><a href=" detail-' + list.id + '.html"><div>' + list.title + '</div></a></span></li>');
                            });
                        } else {
                            $("#aresult").append('<li><span class="s_check">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;暂无数据</span></li>');
                        }
                    }
                },
                error: function() {
                    alert('参数错误');
                }
            });
        } else {
            $("#online_ajax").val('2');
        }

        return false;
    }
10 楼 liyonghui160com 2014-04-15  
zccst 写道
jacking124 写道
byg760 写道
sugen 写道

你这种写法初始化数据的时候会重复加载两次数据。

--第一次

$(document).ready(function(){ 
    getDataList(page_index); 
}); 


---第二次

'callback': pageselectCallback 



楼主这个问题解决吗???

你的问题解决了吗?我遇到了!



这是我很久以前遇到的问题,建议解决办法:不要在回调函数中,写getDataList方法。
function pageselectCallback(page_index, jq){ 
    getDataList(page_index); 

换成另外一种实现方式。



请问如何实现的?
9 楼 zccst 2014-01-14  
jacking124 写道
byg760 写道
sugen 写道

你这种写法初始化数据的时候会重复加载两次数据。

--第一次

$(document).ready(function(){ 
    getDataList(page_index); 
}); 


---第二次

'callback': pageselectCallback 



楼主这个问题解决吗???

你的问题解决了吗?我遇到了!



这是我很久以前遇到的问题,建议解决办法:不要在回调函数中,写getDataList方法。
function pageselectCallback(page_index, jq){ 
    getDataList(page_index); 

换成另外一种实现方式。
8 楼 jacking124 2014-01-14  
byg760 写道
sugen 写道

你这种写法初始化数据的时候会重复加载两次数据。

--第一次

$(document).ready(function(){ 
    getDataList(page_index); 
}); 


---第二次

'callback': pageselectCallback 



楼主这个问题解决吗???

你的问题解决了吗?我遇到了!
7 楼 byg760 2013-10-14  
sugen 写道

你这种写法初始化数据的时候会重复加载两次数据。

--第一次

$(document).ready(function(){ 
    getDataList(page_index); 
}); 


---第二次

'callback': pageselectCallback 



楼主这个问题解决吗???
6 楼 wxw404 2012-09-19  
zccst 写道
wxw404 写道
不知楼主每行的点击‘删除’如何实现的,我试了调用javascript:del(id)这样的方式不行。
另外live 这样的也没试成功过。
请教下楼主。

其实删除本质是在后端进行,只不过需要通过前端告知要删除的记录id,所以在删除标签<a href="" class='del_record' id="record_id">删除</a>中写好class和id。然后使用jquery获取值,传到后端就可以了。jquery代码如下:
$(".del_record").click(function(){
  var id=(this).attr("id");
  $.post(url,{id:id},function(response){},'json');
});

谢谢了 回去试试
5 楼 zccst 2012-09-17  
wxw404 写道
不知楼主每行的点击‘删除’如何实现的,我试了调用javascript:del(id)这样的方式不行。
另外live 这样的也没试成功过。
请教下楼主。

其实删除本质是在后端进行,只不过需要通过前端告知要删除的记录id,所以在删除标签<a href="" class='del_record' id="record_id">删除</a>中写好class和id。然后使用jquery获取值,传到后端就可以了。jquery代码如下:
$(".del_record").click(function(){
  var id=(this).attr("id");
  $.post(url,{id:id},function(response){},'json');
});
4 楼 wxw404 2012-09-16  
不知楼主每行的点击‘删除’如何实现的,我试了调用javascript:del(id)这样的方式不行。
另外live 这样的也没试成功过。
请教下楼主。
3 楼 sugen 2012-05-14  
zccst 写道
sugen 写道

你这种写法初始化数据的时候会重复加载两次数据。

--第一次

$(document).ready(function(){ 
    getDataList(page_index); 
}); 


---第二次

'callback': pageselectCallback 


你有什么好的办法可以避免吗?

暂时还没有做呢。
2 楼 zccst 2012-04-18  
sugen 写道

你这种写法初始化数据的时候会重复加载两次数据。

--第一次

$(document).ready(function(){ 
    getDataList(page_index); 
}); 


---第二次

'callback': pageselectCallback 


你有什么好的办法可以避免吗?
1 楼 sugen 2012-04-17  

你这种写法初始化数据的时候会重复加载两次数据。

--第一次

$(document).ready(function(){ 
    getDataList(page_index); 
}); 


---第二次

'callback': pageselectCallback 

相关推荐

    jquery_pagination分页插件下载

    详细参考:http://blog.csdn.net/xiejx618/article/details/47299491 后台的主要任务是获取总记录数和列表数据,剩下的分页功能可以交给前台来做就可以了,感觉jquery pagination(http://github.com/gbirke/jquery...

    jquery.pagination.js 下载

    jquery.pagination.js 下载,优秀的jquery分页插件,使用IP代理国外网站下载而来

    jquery pagination 分页组件 2.5.0

    jquery pagination 分页组件 jquery pagination 分页组件 jquery pagination 分页组件 官网 https://pagination.js.org/index.html 文档 https://pagination.js.org/docs/index.html

    jQueryPager(JQuery分页插件pagination实现Ajax分页)

    **jQueryPager:基于JQuery的Ajax分页插件Pagination实现** 在Web开发中,当数据量庞大时,分页是一种常见的优化用户体验的方式。jQueryPager是一款轻量级的jQuery分页插件,它允许开发者通过Ajax无刷新的方式实现...

    jQuery Pagination分页插件.zip

    使用jQuery Pagination插件,你需要先确保你的项目已经引入了jQuery库。之后,可以通过以下步骤来集成插件: 1. 引入jQuery Pagination的CSS和JS文件。通常,这些文件位于下载的压缩包中,确保它们被正确地链接到...

    分页插件jquery.pagination.js

    `jQuery.pagination.js` 是一个轻量级且功能强大的分页插件,能够帮助开发者轻松实现高效的分页效果,提高用户体验。下面将详细介绍这个插件的使用方法、核心特性以及常见应用。 首先,`jQuery.pagination.js` 的...

    jquery插件pagination实现无刷新ajax分页

    在实际使用中,你需要先引入 jQuery 和 `jquery.pagination.js` 文件,然后选择一个元素来插入分页链接。例如: ```html &lt;script src="https://code.jquery.com/jquery-3.x.y.min.js"&gt;&lt;/script&gt; ...

    jquery-pagination.rar

    jQuery作为一款广泛使用的JavaScript库,提供了许多插件来实现这一功能,其中之一便是"jQuery的分页插件pagination"。这个压缩包"jquery-pagination.rar"包含了实现这一功能所需的必要文件。 首先,我们要理解...

    jquery.pagination.js实现分页的三种形式,实例

    jQuery pagination.js 是一个轻量级的插件,专门用于实现这种功能。在这个实例中,我们将探讨如何使用 `jquery.pagination.js` 实现三种不同的分页形式:基本分页、AJAX 无刷新分页以及自定义分页属性。 **基本分页...

    jquery_pagination分页插件

    本文将深入探讨jQuery Pagination插件的原理、使用方法和示例,以及如何结合源码进行自定义。 **1. 插件简介** jQuery Pagination是一款轻量级的分页插件,适用于那些基于jQuery构建的项目。它提供了丰富的配置选项...

    jquery pagination使用(笔记)

    jQuery Pagination 是一个轻量级、易于使用的分页插件,能够帮助开发者快速实现页面间的导航。本文将深入探讨如何使用 jQuery Pagination,并通过一个示例项目 `jquery_pagination_sample` 来讲解其核心概念和用法。...

    jquery.pagination 异步 分页

    下面我们将详细介绍如何使用jQuery结合jQuery Pagination插件来实现异步分页功能。 #### 一、jQuery Pagination 插件简介 jQuery Pagination 是一个基于jQuery的轻量级分页插件,它可以方便地为列表添加分页功能。...

    jquery.pagination.js

    jquery.pagination分页插件

    jquery.pagination分页插件

    **jQuery Pagination 分页...总的来说,jQuery Pagination插件是一款高效且易于使用的分页解决方案,适用于各种类型的数据展示场景。通过灵活的配置和自定义,开发者可以轻松地将其整合到自己的项目中,提升用户体验。

    jQuery分页插件Pagination.zip

    总的来说,jQuery分页插件Pagination是一个功能全面、易于使用的工具,适用于各种Web应用程序,尤其是那些需要展示大量数据的场景。其丰富的配置选项、灵活的数据源支持和强大的回调机制,使得开发者能够轻松创建出...

    Jquery分页插件pagination5.0

    **jQuery分页插件Pagination 5.0详解** 在网页开发中,为了提高用户体验和页面加载效率,分页功能是必不可少的。jQuery分页插件Pagination 5.0是一款高效、灵活的工具,专为处理大数据集而设计,能够帮助开发者轻松...

    jQuery Ajax分页插件(jquery.pagination)

    在提供的`jQuery Pagination Plugin(Html)`文件中,应包含一个运行示例的HTML页面,展示了如何使用这个分页插件。页面可能包括: - HTML结构,包含分页组件和数据展示区。 - 引入jQuery库和分页插件的CSS和JS文件。...

    jQuery分页插件pagination.js

    **jQuery分页插件pagination.js** 是一个广泛应用于网页数据分页的JavaScript库,它基于强大的jQuery框架构建,为开发者提供了高效、灵活的分页解决方案。分页是Web应用程序中常见的功能,特别是在处理大量数据时,...

    jquery.pagination.js 分页js

    jQuery Pagination.js 是一款基于 jQuery 的轻量级分页插件,它提供了美观且易于使用的分页功能,适用于网页数据量过大需要分页显示的情况。这款插件包含了完整的分页源码和一个示例(demo),确保用户能够快速上手...

Global site tag (gtag.js) - Google Analytics