Bootstrap Table 的 Client Side Pagination 簡略解說,也就是讓您從資料庫撈出的資料直接套在表格內,並有分頁、搜尋功能!
Bootstrap Table 的 Client Side PaginationBootstrap Table 網站提供了許多表格讓您直接把資料套用在表格裡,讓您簡單又方便的做出漂亮的表格^ ^!笨兔在此說說有關資料庫的 Client Side Pagination 【Server Side Pagination 部份則按此觀看】。
Client Side Pagination 和 Server Side Pagination 其實大同小異,差別在於:(若不是用於龐大資料,當然 Client Side Pagination 是最方便實用的唄!^^)
Bootstrap Table 主網站及下載:http://bootstrap-table.wenzhixin.net.cn/本小站下載:bootstrap table v1.11.1Client Side Pagination 官網程式碼直接套用即可,主要是要將資料庫撈取出來的資料,產生成 Client Side Pagination 所需的 json 格式檔。所以先簡說一下這個 json 檔須產生成啥樣子的資料格式。
[
   {
    "欄位名稱1":資料1,
    "欄位名稱2":資料2,
     .
     .
    "欄位名稱N":資料N
   },
   {
    "欄位名稱1":資料1,
    "欄位名稱2":資料2,
     .
     .
    "欄位名稱N":資料N
   },
    .
    .
   {
    "欄位名稱1":資料1,
    "欄位名稱2":資料2,
     .
     .
    "欄位名稱N":資料N
   },
]        
      Client Side Pagination 基本上要有二個檔,一個為主網頁檔 (笨兔設 html_023_1.html),一個是主網頁要讀取的資料檔 (笨兔設 html_023_2.php)。
html_023_1.html 主網頁範例程式碼:
紅色字部份。
<!doctype html>
  <html>
  <head>
  <meta charset="utf-8">
  <title>喵喵笨兔 の Client Side Pagination Test!!</title>
  <link rel="stylesheet" href="css/bootstrap.min.css">
  <link rel="stylesheet" href="css/bootstrap-table.css">
  <script src="js/jquery.min.js"></script>
  <script src="js/bootstrap.min.js"></script>
  <script src="js/bootstrap-table.js"></script>
  </head>
  <body>
  <div class="container">
  <h1>喵喵笨兔 Client Side Pagination Test!!</h1>
  <table id="table"
      data-toggle="table"
      data-height="460"
      data-pagination="true"
      data-search="true"
      data-url="html_023_2.php">
  <thead>
  <tr>
    <th data-field="l_date">分享日期</th>
    <th data-field="l_sort">分類</th>
    <th data-field="l_number">編號</th>
    <th data-field="l_description">內容說明</th>
    <th data-field="l_url">連結</th>
    <th data-field="l_test">test</th>
  </tr>
  </thead>
  </table>
  </div>
  <script>
      var $table = $('#table');
      $(function () {
      });
  </script>
  </body>
  </html>
    html_023_2.php 資料檔範例程式碼:主要為紅色字部份。
以笨兔網站的 MySQL 資料庫,撈取【學習分享】的資料來做展示,範例設定的 MySQL 相關名稱如下。MySQL 連線部份,可參考笨兔另一篇隨手筆記【db_002】PHP 連接 MySQL 資料庫。
<?php  //MySQL 函數寫法
      $dbhost = 'localhost'; 
      $dbuser = 'root';
      $dbpass = '12345678';
      $dbname = 'pcgame';
      $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error with MySQL connect') ; 
      mysql_query("SET NAMES 'UTF8'"); 
      mysql_select_db($dbname);
      $sql = "SELECT * FROM learn";
      $result = mysql_query($sql) or die('MySQL query error');
     //array 陣列內,您要轉出幾個欄位資料,就輸入資料庫欄位名稱及轉出的資料,不轉的欄位就不要輸入即可。			
      while ($row = mysql_fetch_array($result)){
      $data[] = array(
              "l_id" => $row['l_id'],
              "l_date" => $row['l_date'],
              "l_sort" => $row['l_sort'], 
              "l_number" => $row['l_number'], 
              "l_description" => $row['l_description'], 
              "l_url" => '<a href="'.$row['l_url'].'" target="_blank">連結</a>',
              "l_test" => $row['l_id'].'_'.$row['l_sort']
         );}
   //以 json 顯示資料,看是否與 data 檔格式相同唄! 
       echo json_encode($data);
?>
	
	<?php  //PDO 函數寫法
$dbhost = 'localhost'; 
$dbuser = 'root';
$dbpass = '12345678';
$dbname = 'pcgame';
try{
	$dsn = "mysql:host={$dbhost};dbname={$dbname};charset=utf8";
	$conn = new PDO($dsn, $dbuser, $dbpass);
	//發生錯誤出現錯誤提醒
	$conn -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch (PDOException $e){
	//發生錯誤結束資料庫連線並顯示錯誤訊息
	die($e -> getMessage());
}
$sql = "SELECT * FROM learn";
$rs = $conn -> prepare($sql);
$rs -> execute();
     //array 陣列內,您要轉出幾個欄位資料,就輸入資料庫欄位名稱及轉出的資料,不轉的欄位就不要輸入即可。			
      while ($row = $rs -> fetch(PDO::FETCH_ASSOC)){
      $data[] = array(
              "l_id" => $row['l_id'],
              "l_date" => $row['l_date'],
              "l_sort" => $row['l_sort'], 
              "l_number" => $row['l_number'], 
              "l_description" => $row['l_description'], 
              "l_url" => '<a href="'.$row['l_url'].'" target="_blank">連結</a>',
              "l_test" => $row['l_id'].'_'.$row['l_sort']
         );}
   //以 json 顯示資料,看是否與 data 檔格式相同唄! 
       echo json_encode($data);
?>