php使用EasyUI DataGrid擷取資料的方式

來源:互聯網
上載者:User
  1. 一條小龍 easyUI datagrid
  2. 一條小龍 easyUI datagrid url test

  3. url="datagrid2_getdata.php" title="Load Data" pagination="true">
    UNum User ID Password Birthday Nickname DBSTS

複製代碼

在來定義資料取得的後台介面datagrid2_getdata.php

  1. $page = isset($_POST['page']) ? intval($_POST['page']) : 1;

  2. $rows = isset($_POST['rows']) ? intval($_POST['rows']) : 10;
  3. $offset = ($page-1)*$rows;
  4. $result = array();

  5. $tablename = "STUser";

  6. // ...
  7. require_once(".\db\DB_config.php");
  8. require_once(".\db\DB_class.php");

  9. $db = new DB();

  10. $db->connect_db($_DB['host'], $_DB['username'], $_DB['password'], $_DB['dbname']);
  11. $db->query("select count(*) As Total from $tablename");
  12. $row = $db->fetch_assoc();

  13. $result["total"] = $row["Total"];

  14. $db->query("select * from $tablename limit $offset,$rows");

  15. $items = array();

  16. while($row = $db->fetch_assoc()){
  17. array_push($items, $row);
  18. }
  19. $result["rows"] = $items;

  20. echo json_encode($result);

  21. ?>

複製代碼

由上述,可以看出,這是一個很單純的資料取得的動作。一開始 DataGrid 會傳進來 兩個參數,$_POST['page']) 目前是在第幾頁$_POST['rows']) 每頁要顯示幾筆資料

然後,要使用一個陣列 $result ,存放兩個資訊,$result["total"] 有幾筆資料$result["rows"] 存放實際的資料陣列集最後要將 $result 陣列,產生將 JSON 資料格式來輸出,DataGrid 接收到以後就會來處理、重新整理畫面了。

後面,在更進一步,可以將 datagrid2_getdata.php 在抽象化一層,也就是將屬於 EasyUI DataGrid 特有的資料格式處理的部分與資料庫存取的的部分分離,各自獨立出來成為 兩個 class 來處理。

一個好的架構 以及 class 設計,其實都是靠經驗的累積而產生的,不斷演化改良,原有的架構,其中最重要的精神就是,每個 Class 的分工要清楚而且精確,這是為了應付上述,不斷演化 這各問題來做的對應措施,這樣在未來才更容易去做修改調整。

否則更容易變成,你想改卻不知從何下手,因為一改就有幾十支,甚至上百支程式等著你,要一起修改,從而延伸出,穩定性問題,也就是大家反對去修改原有系統,就是因為 太多要改了,少改一支也不行,問題幾十支一起改,就算都改完,誰來測試有沒有改好,難道叫你的 user 來幫你測,想想,就還是算了,不要再改了,反正現在系統也都還好好的可以用。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.