欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php使用EasyUI DataGrid获取资料的方式

程序员文章站 2022-06-10 17:24:15
...
  1. 一條小龍 easyUI datagrid
  2. 一條小龍 easyUI datagrid url test

  3. url="datagrid2_getdata.php" title="Load Data" pagination="true">
  4. 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 来帮你测,想想,就还是算了,不要再改了,反正现在系统也都还好好的可以用。