Ext面向对象开发实践(续)

来源:互联网 发布:tftp 命令 端口 改端口 编辑:程序博客网 时间:2024/04/29 17:33

 我的上一篇文章《Ext面向对象开发实践》中简述了如何编写一个面向对象的数据维护小程序,但这一些都是基于一个客户端数据,即用户一旦刷新页面,所有的操作都将丢失,现在我们就接着上一篇文章来继续讲一下如何对数据表进行增、删、改、查操作。

 

要实现对数据表中的数据进行操作,第一步就是要取得数据表中的数据,我们把上篇文章中的创建Store的方法也略作调整,让其从数据表中读取数据。

  1.         this.departmentStore = new Ext.data.JsonStore({
  2.             proxy: new Ext.data.HttpProxy({url: "http://localhost:8080/Test_EXT/DB/Department.php"}),
  3.             fields: ["department_code""department_name""manager""division_code"]
  4.         });

Department.php,负责连接SQL数据库,取得数据并将其转换为JSON格式,为Ext的读取作准备。

  1. <?php
  2. require('JSON.php');
  3. require('uai_Personal_Info.php');
  4. $p = new uai_Personal_Info();
  5. $result = $p->getDepartmentList();
  6. $json = new Services_JSON();
  7. echo $json->encode($result);

还有一点要修改的就是新增和修改窗体的onSubmitClick方法

  1.     onSubmitClick: function() {
  2.         if (this.url != "") {
  3.             this.form.submit({url: this.url, success: this.onSubmit, 
  4.                     waitTitle: "Save Data", waitMsg: "Transcation process.....", scope: this});
  5.             this.fireEvent("submit"thisthis.form.getValues());
  6.         }
  7.     },

Submit方法需要传递一系列参数:

url:数据处理的URL地址,这里传入的是一个负责处理新增操作的URL

success:如果提交数据处理成功,则会回调这个参数指定的处理代码

waitTitle:数据提交时弹出对话框的标题

waitMsg:数据提交时弹出对话框的信息内容

scope:回调函数中的this所指对象

 

这里需要说明的是处理数据的PHP文件中,必须返回一个JSON字串,如果包含"success: true",则表示处理成或,否则认为处理失败。例如下面的代码

 

 

  1. <?php
  2. require('JSON.php');
  3. require('uai_Personal_Info.php');
  4. $rs = $_POST;
  5. $rs["success"] = true;  //表示处理成功
  6. $sql = "INSERT INTO uai_department(department_code, department_name, manager, division_code) VALUES('" . 
  7.        $_POST["department_code"] . "', '" . $_POST["department_name"] . "', '" . $_POST["manager"] . "', '" . $_POST["division_code"] . "')";
  8. $p = new uai_Personal_Info();
  9. $rs["r"] = $p->insert_department($sql);
  10. $json = new Services_JSON();
  11. echo $json->encode($rs);

 

删除的处理则与新增、修改略有不同,因为删除不需要弹出窗体对数据进行操作,所以我们改用Ext.Ajax对象

  1.     remove: function() {
  2.         var r = this.getActiveRecord();
  3.         Ext.Ajax.request({url: "http://localhost:8080/Test_EXT/DB/delete_dept.php", params: {department_code: r.get("department_code")}});
  4.         this.getStore().remove(r); //删除客户端数据
  5.     },
原创粉丝点击