flexigrid
เป็น jQuery Plugin สำหรับการแสดงเป็นรายการตารางข้อมูล ที่สามารถปรับขนาดของคอลัมน์
ให้สอดคล้องกับข้อมูล รวมทั้งคุณสมบัติในการเชิ่อมต่อกับข้อมูลไฟล์ xml หรือ json โดยใช้ ajax
คุณสมบัติเด่น
---ปรับขนาดของคอลัมน์แสดงหัวข้อรายการเนื้อหาได้
---ปรับขนาดความกว้างและความสูงได้
---สามารถเรียงการแสดงข้อมูลได้โดยการคลิกที่ห้วข้อรายการข้อมูลนั้นๆ
---รูปแบบ theme การแสดงผลที่สวยงาม
---เชื่อมต่อกับข้อมูลทั้ง xml และ json ไฟล์ หรือประยุกต์ข้อมูลจากฐานข้อมูลได้
---กำหนดการแบ่งหน้าข้อมูลตามต้องการได้
---ซ่อน หรือแสดงคอลัมน์ได้
---กำหนดปุ่มควบคุมเพิ่มเติมได้
---กำหนดฟอร์มการค้นหาเพิ่มเติมได้
---และอื่นๆ
สามารถเข้าไปศึกษาการใช้งาน Flexigrid สำหรับ jQuery เพิ่มเติม ได้ด้วยตัวเองที่
http://www.flexigrid.info/
หรือดาวน์โหลดไฟล์พร้อมใช้งานได้ที่
https://www.ninenik.com/download/flexigrid.rar
ดาวน์โหลดไฟล์ แล้วแตกโฟลเดอร์ flexigrid ไว้ใช้งาน
จากนั้นสร้างไฟล์ สำหรับทดสอบ อีก 2 ไฟล์ตามตัวอย่างด้านล่าง
ตัวอย่างโค้ดไฟล์ทดสอบ simple_flexigrid_01.php
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 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <head> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" /> <title>simple flexigrid jquery plugin</title> <link rel= "stylesheet" type= "text/css" href= "flexigrid/css/flexigrid.css" /> </head> <body> <table id= "myflexigrid" style= "display:none" ></table> <script type= "text/javascript" src= "flexigrid/flexigrid.pack.js" ></script> <script type= "text/javascript" > $( function (){ $( "#myflexigrid" ).flexigrid({ // กำหนดให้สร้าง data grid ให้กับ แท็ก table ที่มี id=myflexigrid url: 'get_flexigriddata.php' , // กำหนด url ของไฟล์ที่จะใช้เชื่อมต่อฐานข้อมูลมาแสดง dataType: 'json' , // กำหนดชนิดของไฟล์ข้อมูลที่ต้องการใช้งานในที่นี้ใช้ json colModel : [ // กำหนดลักษณะการแสดงของคอลัมน์ในตาราง อ่านคำอธิบายด้านล่าง {display: 'ลำดับ' , name : 'arti_id' , width : 40, sortable : true, align: 'center' }, {display: 'หัวข้อบทความ' , name : 'arti_topic' , width : 500, sortable : true, align: 'left' }, {display: 'คนอ่าน' , name : 'hit' , width : 40, sortable : true, align: 'center' }, {display: 'วันที่' , name : 'adddate' , width : 100, sortable : true, align: 'center' } ], sortname: "arti_id" , // กำหนดการจัดเรียงเริ่มต้น เรียงจาก field ใดในฐานข้อมูล sortorder: "desc" , // กำหนดเรียกจากมากไปน้อย หรือน้ยอไปมาก desc / asc usepager: true, // กำหนดให้แสดงส่วนการแบ่งหน้าหรือไม่ true / false title: 'รายการบทความใน www.ninenik.com' , // หัวข้อตาราง useRp: false, // กำหนดให้แสดงการ กำหนดจำนวนรายการแสดงต่อหน้า หรือไม่ true / false rp: 10, // กำหนดจำนวนรายการที่จะแสดงในแต่ละหน้า showTableToggleBtn: false, // กำหนดให้แสดงปุ่ม ซ่อน / แสดงตารางหรือไม่ true / false width: 750, // กำหนดความกว้าง height: 255 // กำหนดความสูง }); // กำหนดลักษณะการแสดงของคอลัมน์ในตาราง // display คือ กำหนด ชื่อข้อความที่ต้องการแสดงหัวข้อคอลัมน์ // name คือ ชื่อ field ของตารางในฐานข้อมูลที่สอดคล้องกัน // widh คือ ความกว้างของคอลัมน์ที่ต้องการแสดง หน่วยเป็น pixel (กำหนดแต่ตัวเลข) // sortable คือ กำหนดว่าคอลัมน์สามารถทำการเรียงข้อมูลได้หรือไม่ ค่า true / false // align คือ กำหนดการจัดตำแหน่่งการแสดงข้อมูล ค่า left / center / right // hide คือ กำหนดให้แสดงหรือไม่แสดงคอลัมน์นั้น ค่า true / false (ส่วนเพิ่มเติม กำหนดหรือไม่ก็ได้) }); </script> </body> </html> |
ตัวอย่างโค้ดไฟล์ติดต่อกับฐานข้อมูล
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 | <?php header( "Content-type:text/x-json; charset=UTF-8" ); header( "Cache-Control: no-store, no-cache, must-revalidate" ); header( "Cache-Control: post-check=0, pre-check=0" , false); // ส่วนการเชื่อมต่อกับฐานข้อมูลอย่างง่าย mysql_connect( "localhost" , "root" , "test" ) or die ( "Cannot connect the Server" ); mysql_select_db( "db_test" ) or die ( "Cannot select database" ); mysql_query( "set character set utf8" ); // ส่วนของการกำหนดการรับค่ามากำหนดเงือนไข $page = $_POST [ 'page' ]; // รับค่าหน้าที่ต้องการนำมาแสดง $rp = $_POST [ 'rp' ]; // รับค่าจำนวนแสดงต่อ 1 หน้า $sortname = $_POST [ 'sortname' ]; // รับค่าเงื่อนไข field ที่ต้องการจัดเรียง $sortorder = $_POST [ 'sortorder' ]; // รับค่ารูปแบบการจัดเรียงข้อมูล // ส่วนการกำหนดค่า กรณีไม่ได้ส่งค่ามา if (! $sortname ) $sortname = 'arti_id' ; // ถ้าไม่ส่งค่ามา กำหนดเป็น field ชื่อ arti_id (ขึ้นกับข้อมูลแต่ละคน) if (! $sortorder ) $sortorder = 'desc' ; // ถ้าไม่ส่งรูปแบบการจัดเรียงข้อมูลมา ให้กำหนดเป็น จากมากไปหาน้อย desc if (! $page ) $page = 1; // ถ้าไม่ได้ส่งหน้าที่ต้องการแสดงมา ให้แสดงหน้าแรก เป็น 1 if (! $rp ) $rp = 10; // หากไม่กำหนดรายการที่จะแสดงต่อ 1 หน้ามา ให้กำหนดเป็น 10 // ส่วนสำหรับจัดรูปแบบขอบเขตและเงื่อนไขข้อมูลที่ต้องการแสดง $start = (( $page -1) * $rp ); $limit = "LIMIT $start, $rp" ; $sort = "ORDER BY $sortname $sortorder" ; // ส่วนหรับหาว่ามีข้อมูลทั้งหมดเท่าไหร่ เก็บในตัวแปร $total $q = "SELECT * FROM article WHERE 1 " ; $qr = mysql_query( $q ); $total = mysql_num_rows( $qr ); // ส่วนสำหรับดึงข้อมูลมาสร้าง json ไฟล์ สำหรับแสดง $q = "SELECT * FROM article WHERE 1 $sort $limit" ; $qr = mysql_query( $q ); $data [ 'page' ] = intval ( $page ); // $data [ 'total' ] = intval ( $total ); // while ( $row = mysql_fetch_array( $qr )) { $rows [] = array ( "id" => $row [ 'arti_id' ], "cell" => array ( $row [ 'arti_id' ] , $row [ 'arti_topic' ] , $row [ 'hit' ] , date ( "Y-m-d" , $row [ 'adddate' ]) ) ); } $data [ 'rows' ] = $rows ; echo json_encode( $data ); exit ; //บรรทัดที่ 40 arti_id // บรรทัดที่ 42 arti_id // บรรทัดที่ 43 arti_topic // บรรทัดที่ 44 hit // บรรทัดที่ 45 date("Y-m-d",$row['adddate']) // ให้เปลี่ยนไปตามชื่อฟิลด์ของข้อมูลที่ต้องการแสดงของแต่ละคน // หากมีมากกว่าตัวอย่าง ให้เพิ่มเข้าไปตามต้องการ // (ในตัวอย่างมีแค่ 4 คอลัมน์ หากมีมากกว่านี้ ให้เพิ่มตามต้องการ // เช่น เพิ่มเป็น // ,$row['reply'] ในบรรทัดต่อมา เป็นต้น) ?> |
ตัวอย่าง
ข้างต้นเป็นเพียงการนำมาใช้ในบางส่วน เนื้อหา หรือรายละเอียดในส่วนอื่นๆ เพิ่มเติม
จะได้นำมาแนะนำต่อๆ ไป