2011-08-18 62 views
0

我在我的网站上有一个名为“查看朋友”的功能,显示包含用户朋友的隐藏div。到目前为止唯一的问题是我希望它能显示3行7个成员,每个页面总共有21个成员。我知道我必须召集NumOfMembers/21给我所需的页面。我只需要一些建议,我应该如何从SQL查询获得所有朋友时设置分页。有任何想法吗?朋友列表分页

回答

1

的SQL查询应该使用limitoffset参数分页,根据页面上ň你对,是这样的:

SELECT .... LIMIT 21 OFFSET n*21 

当处理结果,只需使用在被投入用于确定您当前的结果具有行和列操作:

// where $i is the result number 
$row = $i % 7; 
$line = $i % 3; 
+0

感谢您的解释,我现在理解这个概念谢谢。 – Unleashed

0

你有2种选择:

首先,您可以在一个查询中加载所有来自php的内容,并将所有用户放入数组(内容)中,并只显示在页面中!

content = []; 
max = 21; 

function handlePaginationClick(page, pagination_container) { 

    $('#MyContentArea').empty(); 
    for(var i=0;i<max;i++) { 
     if(null!=content[(page*max)+i]) $('#MyContentArea').append(content[(page*max)+i]); 
    } 
    return false; 
} 
$("#News-Pagination").pagination(content.length, { 
     items_per_page:max, 
     callback:handlePaginationClick 
}); 

你可以使用jQuery分页:https://github.com/gbirke/jquery_pagination#readme 了点。

另一种方法仍然使用jquery分页,但不是一次加载所有内容!那么您必须在方法'handlePaginationClick'中使用相同的ajax调用来提取所有页面信息。

+1

我猜只是在开始时做一个查询以获得所有朋友,并且使用JQuery进行分页会比每次选择下一个页面时发出ajax请求更有效? – Unleashed

+0

我用过的插件在http://plugins.jquery.com/project/combogrid – mozillanerd

+0

中有描述我的意思是!如果你没有5000用户应该没问题!也更容易解决!只需复制我的代码,改变一下!你准备好了! –