แสดงการแบ่งหน้า แบบ ajax ด้วย jQuery php และ css
เขียนเมื่อ 12 ปีก่อน โดย Ninenik Narkdeeแบ่งหน้า css php jquery ajax
คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ แบ่งหน้า css php jquery ajax
คำเตือน! เนื้อหาต่อไปนี้ เป็นเนื้อหาเก่า อาจจะไม่เหมาะสำหรับนำไปใช้งาน
หรือไม่สามารถใช้งานได้แล้ว
ลองดูที่ใหม่กว่า http://www.ninenik.com/content.php?arti_id=770 เป็นแนวทางแทน
ลองดูที่ใหม่กว่า http://www.ninenik.com/content.php?arti_id=770 เป็นแนวทางแทน
ไปที่ Copy
ตัวอย่างโค้ดต่อไปนี้เป็นแนวทางสำหรับ การใช้งาน การแบ่งหน้า แบบ ajax
สามารถนำไปประยุกต์เพิ่มลูกเล่นเพิ่มเติม ได้ตามต้องการ
ตัวอย่าง #
css ส่วนของการแบ่งหน้า
<style type="text/css"> .browse_page{ clear:both; margin-left:12px; height:35px; margin-top:5px; display:block; } .browse_page a,.browse_page a:hover{ display:block; height:18px; width:18px; font-size:10px; float:left; margin-right:2px; border:1px solid #CCCCCC; background-color:#F4F4F4; color:#333333; text-align:center; line-height:18px; font-weight:bold; text-decoration:none; } .browse_page a:hover{ border:1px solid #0A85CB; background-color:#0A85CB; color:#FFFFFF; } .browse_page a.selectPage{ display:block; height:18px; width:18px; font-size:10px; float:left; margin-right:2px; border:1px solid #0A85CB; background-color:#0A85CB; color:#FFFFFF; text-align:center; line-height:18px; font-weight:bold; } .browse_page a.SpaceC{ display:block; height:18px; width:18px; font-size:10px; float:left; margin-right:2px; border:0px dotted #0A85CB; font-size:11px; background-color:#FFFFFF; color:#333333; text-align:center; line-height:18px; font-weight:bold; } .browse_page a.naviPN{ width:50px; font-size:12px; display:block; height:18px; float:left; border:1px solid #0A85CB; background-color:#0A85CB; color:#FFFFFF; text-align:center; line-height:18px; font-weight:bold; } </style>
ส่วนของการแบ่งหน้าด้วย php
<?php $link=mysql_connect("localhost","root","test"); mysql_select_db("test"); mysql_query("set character set utf8"); ?> <?php // สร้างฟังก์ชั่น สำหรับแสดงการแบ่งหน้า function page_navigator($before_p,$plus_p,$total,$total_p,$chk_page){ global $e_page; global $querystr; $urlfile="ajax_data.php"; // ส่วนของไฟล์เรียกใช้งาน ด้วย ajax (ajax_dat.php) $per_page=10; $num_per_page=floor($chk_page/$per_page); $total_end_p=($num_per_page+1)*$per_page; $total_start_p=$total_end_p-$per_page; $pPrev=$chk_page-1; $pPrev=($pPrev>=0)?$pPrev:0; $pNext=$chk_page+1; $pNext=($pNext>=$total_p)?$total_p-1:$pNext; $lt_page=$total_p-4; if($chk_page>0){ echo "<a href='$urlfile?s_page=$pPrev&querystr=".$querystr."' class='naviPN'>Prev</a>"; } for($i=$total_start_p;$i<$total_end_p;$i++){ $nClass=($chk_page==$i)?"class='selectPage'":""; if($e_page*$i<=$total){ echo "<a href='$urlfile?s_page=$i&querystr=".$querystr."' $nClass >".intval($i+1)."</a> "; } } if($chk_page<$total_p-1){ echo "<a href='$urlfile?s_page=$pNext&querystr=".$querystr."' class='naviPN'>Next</a>"; } } ?> <div id="showData" style="width:550px;margin:auto;padding:10px;border:1px solid #CCC;"> <?php //////////////////////////////////////// เริ่มต้น ส่วนเนื้อหาที่จะนำไปใช้ในไฟล์ ที่เรียกใช้ด้วย ajax ?> <ul> <?php $q="select * from province_th where 1"; $q.=" ORDER BY province_id "; $qr=mysql_query($q); $total=mysql_num_rows($qr); $e_page=10; // กำหนด จำนวนรายการที่แสดงในแต่ละหน้า if(!isset($_GET['s_page'])){ $_GET['s_page']=0; }else{ $chk_page=$_GET['s_page']; $_GET['s_page']=$_GET['s_page']*$e_page; } $q.=" LIMIT ".$_GET['s_page'].",$e_page"; $qr=mysql_query($q); if(mysql_num_rows($qr)>=1){ $plus_p=($chk_page*$e_page)+mysql_num_rows($qr); }else{ $plus_p=($chk_page*$e_page); } $total_p=ceil($total/$e_page); $before_p=($chk_page*$e_page)+1; ?> <?php while($rs=mysql_fetch_array($qr)){ ?> <li><?=$rs['province_name']?></li> <?php } ?> </ul> <?php if($total>0){ ?> <div class="browse_page"> <?php // เรียกใช้งานฟังก์ชั่น สำหรับแสดงการแบ่งหน้า page_navigator($before_p,$plus_p,$total,$total_p,$chk_page); ?> </div> <?php } ?> <?php //////////////////////////////////////////// จบ ส่วนเนื้อหาที่จะนำไปใช้ในไฟล์ ที่เรียกใช้ด้วย ajax ?> </div>
ส่วนของการใช้งาน ajax สำหรับโหลดไฟล์ตามหน้าที่ต้องการ
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> <script type="text/javascript"> $(function(){ $(".browse_page a").live("click",function(event){ event.preventDefault(); var url=$(this).attr("href"); // แสดงแบบปกติ // $("#showData").load(url,function(){ // // }); // แสดงแบบ effect สามารถประยุกต์ effect หรือลูกเล่นอื่นๆ ตามต้องการ $("#showData").animate({ opacity:0 },100,function(){ $("#showData").load(url,function(){ $("#showData").animate({ opacity:1 },200); }); }); return false; }); }); </script>
โค้ดไฟล์ page_navi3_demo_ajax.php ทั้งหมด (รวม 3 ส่วนข้างต้น)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="canonical" href="http://www.ninenik.com/demo/page_navi3_demo.php"/> <title>ฟังก์ชัน php แบ่งหน้า แบบ ajax แต่งด้วย css สวยๆ</title> <style type="text/css"> .browse_page{ clear:both; margin-left:12px; height:35px; margin-top:5px; display:block; } .browse_page a,.browse_page a:hover{ display:block; height:18px; width:18px; font-size:10px; float:left; margin-right:2px; border:1px solid #CCCCCC; background-color:#F4F4F4; color:#333333; text-align:center; line-height:18px; font-weight:bold; text-decoration:none; } .browse_page a:hover{ border:1px solid #0A85CB; background-color:#0A85CB; color:#FFFFFF; } .browse_page a.selectPage{ display:block; height:18px; width:18px; font-size:10px; float:left; margin-right:2px; border:1px solid #0A85CB; background-color:#0A85CB; color:#FFFFFF; text-align:center; line-height:18px; font-weight:bold; } .browse_page a.SpaceC{ display:block; height:18px; width:18px; font-size:10px; float:left; margin-right:2px; border:0px dotted #0A85CB; font-size:11px; background-color:#FFFFFF; color:#333333; text-align:center; line-height:18px; font-weight:bold; } .browse_page a.naviPN{ width:50px; font-size:12px; display:block; height:18px; float:left; border:1px solid #0A85CB; background-color:#0A85CB; color:#FFFFFF; text-align:center; line-height:18px; font-weight:bold; } </style> </head> <body> <?php $link=mysql_connect("localhost","root","test"); mysql_select_db("test"); mysql_query("set character set utf8"); ?> <?php // สร้างฟังก์ชั่น สำหรับแสดงการแบ่งหน้า function page_navigator($before_p,$plus_p,$total,$total_p,$chk_page){ global $e_page; global $querystr; $urlfile="ajax_data.php"; // ส่วนของไฟล์เรียกใช้งาน ด้วย ajax (ajax_dat.php) $per_page=10; $num_per_page=floor($chk_page/$per_page); $total_end_p=($num_per_page+1)*$per_page; $total_start_p=$total_end_p-$per_page; $pPrev=$chk_page-1; $pPrev=($pPrev>=0)?$pPrev:0; $pNext=$chk_page+1; $pNext=($pNext>=$total_p)?$total_p-1:$pNext; $lt_page=$total_p-4; if($chk_page>0){ echo "<a href='$urlfile?s_page=$pPrev&querystr=".$querystr."' class='naviPN'>Prev</a>"; } for($i=$total_start_p;$i<$total_end_p;$i++){ $nClass=($chk_page==$i)?"class='selectPage'":""; if($e_page*$i<=$total){ echo "<a href='$urlfile?s_page=$i&querystr=".$querystr."' $nClass >".intval($i+1)."</a> "; } } if($chk_page<$total_p-1){ echo "<a href='$urlfile?s_page=$pNext&querystr=".$querystr."' class='naviPN'>Next</a>"; } } ?> <div id="showData" style="width:550px;margin:auto;padding:10px;border:1px solid #CCC;"> <?php //////////////////////////////////////// เริ่มต้น ส่วนเนื้อหาที่จะนำไปใช้ในไฟล์ ที่เรียกใช้ด้วย ajax ?> <ul> <?php $q="select * from province_th where 1"; $q.=" ORDER BY province_id "; $qr=mysql_query($q); $total=mysql_num_rows($qr); $e_page=10; // กำหนด จำนวนรายการที่แสดงในแต่ละหน้า if(!isset($_GET['s_page'])){ $_GET['s_page']=0; }else{ $chk_page=$_GET['s_page']; $_GET['s_page']=$_GET['s_page']*$e_page; } $q.=" LIMIT ".$_GET['s_page'].",$e_page"; $qr=mysql_query($q); if(mysql_num_rows($qr)>=1){ $plus_p=($chk_page*$e_page)+mysql_num_rows($qr); }else{ $plus_p=($chk_page*$e_page); } $total_p=ceil($total/$e_page); $before_p=($chk_page*$e_page)+1; ?> <?php while($rs=mysql_fetch_array($qr)){ ?> <li><?=$rs['province_name']?></li> <?php } ?> </ul> <?php if($total>0){ ?> <div class="browse_page"> <?php // เรียกใช้งานฟังก์ชั่น สำหรับแสดงการแบ่งหน้า page_navigator($before_p,$plus_p,$total,$total_p,$chk_page); ?> </div> <?php } ?> <?php //////////////////////////////////////////// จบ ส่วนเนื้อหาที่จะนำไปใช้ในไฟล์ ที่เรียกใช้ด้วย ajax ?> </div> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> <script type="text/javascript"> $(function(){ $(".browse_page a").live("click",function(event){ event.preventDefault(); var url=$(this).attr("href"); // แสดงแบบปกติ // $("#showData").load(url,function(){ // // }); // แสดงแบบ effect สามารถประยุกต์ effect หรือลูกเล่นอื่นๆ ตามต้องการ $("#showData").animate({ opacity:0 },100,function(){ $("#showData").load(url,function(){ $("#showData").animate({ opacity:1 },200); }); }); return false; }); }); </script> </body> </html>
ส่วนของไฟล์เรียกใช้งาน ด้วย ajax (ajax_dat.php)
<?php header("Content-type:text/html; charset=UTF-8"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); ?> <?php $link=mysql_connect("localhost","root","test"); mysql_select_db("test"); mysql_query("set character set utf8"); ?> <?php // สร้างฟังก์ชั่น สำหรับแสดงการแบ่งหน้า function page_navigator($before_p,$plus_p,$total,$total_p,$chk_page){ global $e_page; global $querystr; $urlfile="ajax_data.php"; // ส่วนของไฟล์เรียกใช้งาน ด้วย ajax (ajax_dat.php) $per_page=10; $num_per_page=floor($chk_page/$per_page); $total_end_p=($num_per_page+1)*$per_page; $total_start_p=$total_end_p-$per_page; $pPrev=$chk_page-1; $pPrev=($pPrev>=0)?$pPrev:0; $pNext=$chk_page+1; $pNext=($pNext>=$total_p)?$total_p-1:$pNext; $lt_page=$total_p-4; if($chk_page>0){ echo "<a href='$urlfile?s_page=$pPrev&querystr=".$querystr."' class='naviPN'>Prev</a>"; } for($i=$total_start_p;$i<$total_end_p;$i++){ $nClass=($chk_page==$i)?"class='selectPage'":""; if($e_page*$i<=$total){ echo "<a href='$urlfile?s_page=$i&querystr=".$querystr."' $nClass >".intval($i+1)."</a> "; } } if($chk_page<$total_p-1){ echo "<a href='$urlfile?s_page=$pNext&querystr=".$querystr."' class='naviPN'>Next</a>"; } } ?> <?php //////////////////////////////////////// เริ่มต้น ส่วนเนื้อหาที่จะนำไปใช้ในไฟล์ ที่เรียกใช้ด้วย ajax ?> <ul> <?php $q="select * from province_th where 1"; $q.=" ORDER BY province_id "; $qr=mysql_query($q); $total=mysql_num_rows($qr); $e_page=10; // กำหนด จำนวนรายการที่แสดงในแต่ละหน้า if(!isset($_GET['s_page'])){ $_GET['s_page']=0; }else{ $chk_page=$_GET['s_page']; $_GET['s_page']=$_GET['s_page']*$e_page; } $q.=" LIMIT ".$_GET['s_page'].",$e_page"; $qr=mysql_query($q); if(mysql_num_rows($qr)>=1){ $plus_p=($chk_page*$e_page)+mysql_num_rows($qr); }else{ $plus_p=($chk_page*$e_page); } $total_p=ceil($total/$e_page); $before_p=($chk_page*$e_page)+1; ?> <?php while($rs=mysql_fetch_array($qr)){ ?> <li><?=$rs['province_name']?></li> <?php } ?> </ul> <?php if($total>0){ ?> <div class="browse_page"> <?php // เรียกใช้งานฟังก์ชั่น สำหรับแสดงการแบ่งหน้า page_navigator($before_p,$plus_p,$total,$total_p,$chk_page); ?> </div> <?php } ?> <?php //////////////////////////////////////////// จบ ส่วนเนื้อหาที่จะนำไปใช้ในไฟล์ ที่เรียกใช้ด้วย ajax ?>
กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ

URL สำหรับอ้างอิง
Top
Copy
ขอบคุณทุกการสนับสนุน
![]()