本文实例讲述了Zend Framework框架实现类似Google搜索分页效果。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
/**
*
* @param unknown_type $model 表类型
* @param unknown_type $ncontroller 那个控制器提交的controller
* @param unknown_type $naction 那个action提交的action
*/
public function fenyepage2( $model , $ncontroller , $naction ){
if (!isset( $_SESSION ))
{session_start();}
$pageSize = $_SESSION [ 'pagesize' ];
$pageNow = $_SESSION [ 'pagenow' ];
$offset = ( $pageNow -1)* $pageSize ;
$db = $this ->getAdapter();
$select = $db ->select();
$select ->from( 'student' , '*' );
if (!isset( $_SESSION ))
{session_start();}
if ( $_SESSION [ 'qsname' ]!= "" ){
$sname = $_SESSION [ 'qsname' ];
$select ->where( 'sname like ?' , "%$sname%" );
}
if ( $_SESSION [ 'qsaddress' ]!= "" ){
$saddress = $_SESSION [ 'qsaddress' ];
$select ->where( 'saddress like ?' , "%$saddress%" );
}
if ( $_SESSION [ 'qsdept' ]!= "" ){
$sdept = $_SESSION [ 'qsdept' ];
$select ->where( 'sdept like ?' , "%$sdept%" );
}
$coutNews = $db ->fetchAll( $select );
$pageCount = ceil ( count ( $coutNews )/ $pageSize );
$select ->limit( $pageSize , $offset ); //第一个参数:总共显示多少个。第二个参数:从第几个开始显示
$res = $db ->fetchAll( $select );
$native = null;
$native = "<a href='\\$ncontroller\\$naction?pageNow=1&pagesize=$pageSize'>首页</a> " ;
if ( $pageNow >1){
$nextPage = $pageNow -1;
$native .= " <a href='\\$ncontroller\\$naction?pageNow=$nextPage&pagesize=$pageSize'>上一页</a> " ;
}
if (( $pageNow -1)>5){
if ( $pageNow +4> $pageCount ){ //如果最后的页数和理应前面开始的页数小于10则
$start = $pageCount -9; //开始的页数和结束的页数相差9
} else {
$start = $pageNow -5; //开始位置和结束位置相差5
}
} else {
$start = floor (( $pageNow -1)/10)*10+1;
}
if ( $pageCount >= $start +10){
$index = $start +10;
}
else {
$index = $pageCount +1;
}
for (; $start < $index ; $start ++){
$native .= " <a href='\\$ncontroller\\$naction?pageNow=$start&pagesize=$pageSize'>$start</a>" ;
}
if ( $pageNow < $pageCount ){
$nextPage = $pageNow +1;
$native .= " <a href='\\$ncontroller\\$naction?pageNow=$nextPage&pagesize=$pageSize'>下一页</a> " ;
}
$native .= " <a href='\\$ncontroller\\$naction?pageNow=$pageCount&pagesize=$pageSize'>末页</a> " ;
$native .= " 当前{$pageNow}||总共{$pageCount}页" ;
$model ->arrs = $res ;
$model ->native = $native ;
}
|
希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。