|
|
|
อยากสอบถามวิธีทำ Pagination ของ Bootstrap Framework อ่ะครับ |
|
|
|
|
|
|
|
Code (PHP)
function guPagination($query, $per_page = 10,$page = 1, $url = '?'){
$query = "SELECT COUNT(*) as num FROM {$query}";
$row = mysql_fetch_array(mysql_query($query));
$total = $row['num'];
$adjacents = "2";
$page = ($page == 0 ? 1 : $page);
$start = ($page - 1) * $per_page;
$prev = $page - 1;
$next = $page + 1;
$lastpage = ceil($total/$per_page);
$lpm1 = $lastpage - 1;
$pagination = "";
if($lastpage > 1){
$pagination .= "<ul class='pager'>";
if ($lastpage < 7 + ($adjacents * 2))
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='{$url}subpage=$counter'>$counter</a></li>";
}
}else if($lastpage > 5 + ($adjacents * 2))
{
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='{$url}subpage=$counter'>$counter</a></li>";
}
$pagination.= "<li class='dot'>...</li>";
$pagination.= "<li><a href='{$url}subpage=$lpm1'>$lpm1</a></li>";
$pagination.= "<li><a href='{$url}subpage=$lastpage'>$lastpage</a></li>";
}
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination.= "<li><a href='{$url}subpage=1'>1</a></li>";
$pagination.= "<li><a href='{$url}subpage=2'>2</a></li>";
$pagination.= "<li class='dot'>...</li>";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='{$url}subpage=$counter'>$counter</a></li>";
}
$pagination.= "<li class='dot'>..</li>";
$pagination.= "<li><a href='{$url}subpage=$lpm1'>$lpm1</a></li>";
$pagination.= "<li><a href='{$url}subpage=$lastpage'>$lastpage</a></li>";
}
else
{
$pagination.= "<li><a href='{$url}subpage=1'>1</a></li>";
$pagination.= "<li><a href='{$url}subpage=2'>2</a></li>";
$pagination.= "<li class='dot'>..</li>";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='{$url}subpage=$counter'>$counter</a></li>";
}
}
}
if ($page < $counter - 1){
$pagination.= "<li><a href='{$url}subpage=$next'>หน้าถัดไป</a></li>";
$pagination.= "<li><a href='{$url}subpage=$lastpage'>หน้าสุดท้าย</a></li>";
}else{
$pagination.= "<li><a class='current'>หน้าถัดไป</a></li>";
$pagination.= "<li><a class='current'>หน้าสุดท้าย</a></li>";
}
$pagination.= "</ul>\n";
}
return $pagination;
}
การใช้งาน
Code (PHP)
<?PHP
$page = (int) (!isset($_GET["subpage"]) ? 1 : $_GET["subpage"]);
$limit =5; //จำนวนแสดงต่อหน้า
$startpoint = ($page * $limit) - $limit;
$statement = "tb_name where 1";
$cont="SELECT * FROM {$statement} LIMIT {$startpoint} , {$limit}";
$query = mysql_query($cont) or die("<pre>".mysql_error()."</pre>");
while($article1=mysql_fetch_array($query)){
?>
<div class="featured-box">
<a href="detail.php?id=<?=$article1['art_id'];?>"><h2><?=$article1['art_title_th'];?></h2></a>
</div>
<?PHP
}
echo guPagination($statement,$limit,$page,$url='test.php?'); //กำหนด URL หน้าที่แบ่งหน้า
?>
ลองดูนะครับ
ปล.(ถ้ามีเวลาเดี๋ยวผมมาอธิบายให้)
|
|
|
|
|
Date :
2014-10-28 14:50:03 |
By :
Manussawin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลืมบอก ไปไม่แน่ใจนะครับว่าถ้า bootstrap เวอร์ชั่นใหม่ อาจจะต้องเรียกใช้ class css แบบนี้
<ul class="pagination pull-right">
ดังนั้นจาก function ข้างบนที่ผมให้ไป ให้แก้ไขบรรที่ 17 เป็น <ul class='pagination pull-right'> นะครับ
ส่วน pull-right คือการสั่งให้ชิดขวาธรรมดานะครับ ถ้าเอาออกก็จะกำหนดเป็นค่า ชิดซ้ายปกติ
|
|
|
|
|
Date :
2014-10-28 14:53:42 |
By :
Manussawin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|