又是分页类?
span style=color:#003399;/**/span br / span style=color:#003399;* /span br / span style=color:#003399;* 分页类/span br / span style=color:#003399;* @author Administrator/span br / span style=color:#003399;* @internal 实际上分页有两种
/**
*
* 分页类
* @author Administrator
* @internal 实际上分页有两种方式:
*/
class Page_html
{
private static $_offset = 0;
private static $_total_page = 0;
/**
*
* 分页
* @param 总记录 $total
* @param 每页大小 $page_size
* @param 当前页 $cur_page
* @param
* @param 数字列表 $num_display
* 表示 当前页左右两边有多少位数字
* @param url $url
* url 是你自己决定的,page()方法只负责把页码符加到url上。
*/
static function page($total, $page_size, $cur_page, $url, $num_display = NULL)
{
$page = '';
#页数处理
$total = intval ( $total );
$page_size = max ( 1, intval ( $page_size ) );
self::$_total_page = ceil ( $total / $page_size );
$cur_page = max ( 1, intval ( $cur_page ) );
if ($cur_page > self::$_total_page)
{
$cur_page = self::$_total_page;
}
#计算offset
self::$_offset = ($cur_page - 1) * $page_size;
#上一页
if ($cur_page <= 1)
{
$page .= '<span>首页</span> <span>上一页</span>';
} else
{
$next_page = $cur_page - 1;
$page .= '<a href="' . $url . '1">首页</a> <a href="' . $url . $next_page . '">上一页</a>';
}
#数字列表
$num_display = max ( 1, $num_display );
#左边数字
$start = $cur_page - $num_display;
$start = $start <= 0 ? 1 : $start;
#右边数字
$end = $cur_page + $num_display;
$end = $end > self::$_total_page ? self::$_total_page : $end;
for($i = $start; $i <= $end; $i ++)
{
if ($cur_page == $i)
{
$page .= " <span>$i</span> ";
} else
{
$page .= ' <a href="' . $url . $i . '">' . $i . '</a> ';
}
}
#下一页
if ($cur_page >= self::$_total_page)
{
$page .= '<span>末页</span> <span>下一页</span>';
} else
{
$next_page = $cur_page + 1;
$page .= '<a href="' . $url . $next_page . '">下一页</a> <a href="' . $url . self::$_total_page . '">末页</a>';
}
#跳转页
$event = "window.location.href='$url'+this.value";
$page .= ' <select name="scope" onchange="' . $event . '">';
for($i = 1; $i <= self::$_total_page; $i ++)
{
if ($cur_page == $i)
{
$page .= "<option value='$i' selected >$i</option>";
} else
{
$page .= "<option value='$i'>$i</option>";
}
}
$page .= '</select>';
return $page;
}
/*
* 获取Offset值
*/
static function get_offset()
{
return self::$_offset;
}
/*
* 总页数
*/
static function get_total_page()
{
return self::$_total_page;
}
}
/**
* 使用实例 获取数据
*/
#每页数据量
$pagesize = 5;
#URL(注意参数这里使用的是page,当然你可随意修改)
$url = 'http://localhost:8080/test/test.php?s=sd&page=';
#当前页两边显示数字个数
$num_display = 2;
#获取当前页
$_GET ['page'] = isset ( $_GET ['page'] ) ? $_GET ['page'] : 1;
$page = Page_html::page ( 100, 10, $_GET ['page'], $url, $num_display );
#这里将offset的计算放入到page类里
$offset = Page_html::get_offset ();
/**
* 输出结果HTML
*/
header ( 'Content-type:text/html;charset=utf-8' );
print ($page) ;
当然,根据功能需求,可以增删一些代码,比如跳转页功能不要,可将其删除即可。
详情: http://fc-lamp.blog.163.com/blog/static/17456668720111113280400/
*
* 分页类
* @author Administrator
* @internal 实际上分页有两种方式:
*/
class Page_html
{
private static $_offset = 0;
private static $_total_page = 0;
/**
*
* 分页
* @param 总记录 $total
* @param 每页大小 $page_size
* @param 当前页 $cur_page
* @param
* @param 数字列表 $num_display
* 表示 当前页左右两边有多少位数字
* @param url $url
* url 是你自己决定的,page()方法只负责把页码符加到url上。
*/
static function page($total, $page_size, $cur_page, $url, $num_display = NULL)
{
$page = '';
#页数处理
$total = intval ( $total );
$page_size = max ( 1, intval ( $page_size ) );
self::$_total_page = ceil ( $total / $page_size );
$cur_page = max ( 1, intval ( $cur_page ) );
if ($cur_page > self::$_total_page)
{
$cur_page = self::$_total_page;
}
#计算offset
self::$_offset = ($cur_page - 1) * $page_size;
#上一页
if ($cur_page <= 1)
{
$page .= '<span>首页</span> <span>上一页</span>';
} else
{
$next_page = $cur_page - 1;
$page .= '<a href="' . $url . '1">首页</a> <a href="' . $url . $next_page . '">上一页</a>';
}
#数字列表
$num_display = max ( 1, $num_display );
#左边数字
$start = $cur_page - $num_display;
$start = $start <= 0 ? 1 : $start;
#右边数字
$end = $cur_page + $num_display;
$end = $end > self::$_total_page ? self::$_total_page : $end;
for($i = $start; $i <= $end; $i ++)
{
if ($cur_page == $i)
{
$page .= " <span>$i</span> ";
} else
{
$page .= ' <a href="' . $url . $i . '">' . $i . '</a> ';
}
}
#下一页
if ($cur_page >= self::$_total_page)
{
$page .= '<span>末页</span> <span>下一页</span>';
} else
{
$next_page = $cur_page + 1;
$page .= '<a href="' . $url . $next_page . '">下一页</a> <a href="' . $url . self::$_total_page . '">末页</a>';
}
#跳转页
$event = "window.location.href='$url'+this.value";
$page .= ' <select name="scope" onchange="' . $event . '">';
for($i = 1; $i <= self::$_total_page; $i ++)
{
if ($cur_page == $i)
{
$page .= "<option value='$i' selected >$i</option>";
} else
{
$page .= "<option value='$i'>$i</option>";
}
}
$page .= '</select>';
return $page;
}
/*
* 获取Offset值
*/
static function get_offset()
{
return self::$_offset;
}
/*
* 总页数
*/
static function get_total_page()
{
return self::$_total_page;
}
}
/**
* 使用实例 获取数据
*/
#每页数据量
$pagesize = 5;
#URL(注意参数这里使用的是page,当然你可随意修改)
$url = 'http://localhost:8080/test/test.php?s=sd&page=';
#当前页两边显示数字个数
$num_display = 2;
#获取当前页
$_GET ['page'] = isset ( $_GET ['page'] ) ? $_GET ['page'] : 1;
$page = Page_html::page ( 100, 10, $_GET ['page'], $url, $num_display );
#这里将offset的计算放入到page类里
$offset = Page_html::get_offset ();
/**
* 输出结果HTML
*/
header ( 'Content-type:text/html;charset=utf-8' );
print ($page) ;
当然,根据功能需求,可以增删一些代码,比如跳转页功能不要,可将其删除即可。
详情: http://fc-lamp.blog.163.com/blog/static/17456668720111113280400/
标签:
<无>
精彩图集
精彩文章