0

0

解析Extjs与php数据交互(增删查改)_PHP教程

php中文网

php中文网

发布时间:2016-07-21 15:03:27

|

1273人浏览过

|

来源于php中文网

原创

复制代码 代码如下:

html>

//搜索暂时没做,数据是出来了,但是却没法显示

<script type="text/javascript" src="./js/jquery.js"></script>
<script type="text/javascript" src="./js/ext-base.js"></script>
<script type="text/javascript" src="./js/ext-all.js"></script>
<script type="text/javascript" src="./js/ext-lang-zh_CN-min.js"></script>
<script type="text/javascript"><br>Ext.QuickTips.init(); //初始化快速提示对象<br>function test() {<br> Ext.Msg.alert('title','test-yii-ext');<br>}<br>function renderSex(value) {<br>    if (value == 'male') {<br>        return "<span style='color:red;font-weight:bold;'>红男<img src='./images/male.jpg' / alt="解析Extjs与php数据交互(增删查改)_PHP教程" >";<br>    } else {<br>        return "<span style="max-width:90%">绿女<img src='./images/female.png' / alt="解析Extjs与php数据交互(增删查改)_PHP教程" >";<br>    }<br>}<br>function init() <br>{<br><br> //1、创建url访问类。<br> var url = 'index.<a style="max-width:90%" title= "php" href="https://www.php.cn/zt/15714.html" target="_blank">php';<br> var _proxy = new Ext.data.HttpProxy({url:url});<br> //2、数据问题参数<br> var _jsonProperty = "totalProperty";<br> //数据根目录参数<br> var _jsonRoot = "root";<br> //Record显示列表对应关系<br> var _record = [{name:'id'},<br>             {name:'name'},<br>             {name:'pass'},<br>             {name:'sex'},<br>             {name:'email'}];<br> //创建JSONReader对象,需要设置记录总数,根目录名称,记录映射<br> var _reader = new Ext.data.JsonReader({totelPropetty:_jsonProperty,root:_jsonRoot},_record);<br> /**<br>  * 封装一个客户端的Record对象缓存,为GridPanel提供数据入口<br>  * 需要两个必须的参数<br>  * 1、提供数据的地址:Proxy  代理类<br>  * 2、数据的读取方式:Reader 类,这里通过JsonReader读取<br>  */<br> var _store = new Ext.data.Store({<br>  proxy:_proxy,<br>  reader:_reader<br> });<br> /**<br> ColumnModel<br> * 数据在页面上显示标题信息,<br> * 顺序和Record对应<br> * sortable 是否排序<br> * dataIndex 进行对应的列,对应Record中的NAME<br> * <br> * handler方法中 第一个参数表示父类的对象,本例中为GridPanel对象。<br> * 第二个参数表示第几行。<br> * 第三个参数表示第几列。<br> */<br> var _cm = new Ext.grid.ColumnModel([<br>  new Ext.grid.RowNumberer(),<br>  new Ext.grid.CheckboxSelectionModel(),                                    <br>  {header:"ID",dataIndex:"id",width:50,sortable:true,menuDisabled:true},<br>  {header:"用户名",dataIndex:"name",width:80,sortable:true},<br>  {header:"密码",dataIndex:"pass",width:175,sortable:true},<br>  {header:"性别",dataIndex:"sex",width:145,sortable:true,renderer:renderSex},<br>  {header:"电子邮箱",dataIndex:"email",width:150,sortable:true}<br> ]);<br>/////////////////////////搜索<br> var logins = new Ext.form.FormPanel({<br>   id:'myform',//分配表单id<br>    title: '按用户名搜索',<br>    width: 400,<br>    defaultType: 'textfield',<br>    frame: true,<br>   // method: 'POST',<br>    collapsible: true,//可折叠<br>    bodyPadding: 5,<br><br>    layout: 'column',//列布局<br><br>    margin: '0 0 10 0',<br>    items: [{<br>        fieldLabel: '姓名',<br>        labelWidth: 40,<br>        id: 'name'<br>    }],<br>    buttons: [{<br>       // xtype: 'button',<br>        text: '搜索',<br>        margin: '0 0 0 5',<br>        handler: search<br>    },{<br>        // xtype: 'button',<br>        text: '隐藏',<br>        margin: '0 0 0 5',<br>        handler: hide<br>    }],<br><br>    renderTo: "search"<br> })<br> logins.hide();<br> function hide()<br> {<br>  logins.hide();<br>  }<br>///////////////////////////////////////////////////////<br><br> ///////////////////////////////////////////////////////////////////////////////////////////<br> //获取数据<br> var ds = new Ext.data.Store({<br><br>  //proxy告诉我们从哪获得数据,Ext.data.MemoryProxy专门解析js变量<br>  //proxy:new Ext.data.MemoryProxy(data),<br>  //通过http获取数据<br>  proxy:new Ext.data.HttpProxy({<br>   url:url}),<br><br>  //获取json数据<br>  reader:new Ext.data.JsonReader({<br>   totalProperty:'totalProperty',<br>   root:'root'<br>  },Ext.data.Record.create([<br>     {name:'id'},<br>     {name:'name'},<br>     {name:'pass'},<br>     {name:'sex'},<br>     {name:'email'}<br>  ]))<br> });<br>//////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br> //自动分页<br> var _pageSize = 16;<br> var _toolbar = new Ext.PagingToolbar({<br>  store:ds,<br>  pageSize:_pageSize,<br>  displayInfo:true,<br>  displayMsg:'显示第{0}条到第{1}条记录,一共{2}条',<br>  emptyMsg:'暂无数据'<br> });<br><br> //顶部工具栏按钮<br> var t_toolbar = [<br>  {id:"addData",text:"用户添加",handler:addUser},"-",<br>       {id:"updateData",text:"用户修改",listeners:{"click":updateUser}},"-",<br>       {id:"deleteData",text:"删除选中用户",handler:removeUser},"-",<br>       {id:"test",text:"测试选中",handler:chkSelects},"-",<br>       {id:"search",text:"搜索",handler:jump}<br>    ];<br> /**<br>  * GridPanel对象<br>  * 数据列表页面<br>  * 必须设置 Store 数据访问对象和标题栏显示信息<br>  * 即 Store和ColumnModel对象<br>  */<br> var _grid = new Ext.grid.GridPanel({<br>  headerAsText: false, // 如果有标题栏, 隐藏标题栏<br>  collapsible: true,//可折叠<br>  height:500,<br>  width:1100,<br>  frame:true,//圆角边框<br>  store:ds,<br>  title:'测试yii整合Ext',<br>  cm:_cm,<br>  bbar : _toolbar,<br>  tbar : t_toolbar<br> });<br> ds.load({params:{start:0,limit:_pageSize}});<br> _grid.render('test_id');<br><br> //_grid.render();<br> /* 用户信息录入框,验证  */<br> var fpanel;<br> function f(){<br> fpanel = new Ext.form.FormPanel<br> ({    <br>  frame : true,//边框圆角并且有背景色    <br>  labelAlign : 'right',    <br>  waitMsgTarget : true,    <br>  autoScroll : true,    <br>  buttonAlign : 'center',    <br>  items : [<br>           {xtype:"hidden",name:"id"}, <br>     {xtype:"textfield",fieldLabel:"用户名",name:"name",anchor : "-20",allowBlank:false,//是否允许为空<br>               blankText:"用户名不允许为空!",labelWidth : 20},<br>           {xtype:"radiogroup",fieldLabel:"性别",columns:2,allowBlank:false,blankText:"性别不允许为空!",items:[{boxLabel:'男',name:'sex',inputValue:'male'},{boxLabel:'女',name:'sex',inputValue:'female'}]},<br>     {xtype:"textfield",fieldLabel:"密码",name:"pass",allowBlank:false,//是否允许为空<br>                       blankText:"密码不允许为空!",anchor : "-20"},<br>     {xtype:"textarea",fieldLabel:"电子邮箱",name:"email",allowBlank:false,//是否允许为空<br>                           blankText:"邮箱不允许为空!",anchor : "-20"}<br>    ]<br> });<br>}<br><br> var win;<br> /* 增加用户  */<br> function addUser() <br> {<br>  f();<br><br>  win = new Ext.Window<br>  ({     <br>   title:"新增用户",<br>   id:"win",<br>   //animEl:"fly",<br>   //layout:"fit",<br>   width:350,     <br>   height:250,     <br>   closeAction : "close",    <br>   plain : true,    <br>   modal : true,// 模态窗口,当打开当前窗口时,后面的内容被遮挡  <br>   bodyStyle:"padding:3px 0 0 3px",     <br>   layout:"form",     <br>   labelWidth:55,     <br>   items:[fpanel],  <br>   buttons:[<br>              {text:"保存", handler :function()<br>               {       <br>       //在保存的时候,因为Id值为空,所以不能转换到后台,后台报类型转换异常,可以将Id设值为0,      <br>       //在后台处理的时候,对于值为0的Id不获取       <br>               fpanel.findByType("hidden")[0].setValue(0);       <br>               fpanel.getForm().submit({<br>                      url : "add.php",<br>                      method : "POST",<br>                      waitMsg : "保存数据...",<br><br>                      success : function(form, action) {  <br>                          // 业务成功  <br>                       Ext.MessageBox.alert('提示','添加成功!');<br>                          win.close();<br>                          ds.load({params:{ start:0,limit:_pageSize} });<br>                      },  <br>                      failure : function(form, action) {  <br>                          // 业务失败<br><br>                       <br>                      obj = Ext.util.JSON.decode(action.response.responseText);<br>                      Ext.MessageBox.alert('提示', obj.errors.reason);<br>                      win.close();<br><br>                      ds.load({params:{ start:0,limit:_pageSize} });<br>                     }  <br>                 }); <br>               }     <br>               },<br>               { <br>                text:"重置",handler:function()<br>                {       <br>                 fpanel.getForm().reset();   <br>       }     <br>               }<br>            ]    <br>    })<br>  win.show();<br>  // 因为重复使用window,有可能在修改后fpanel中还存在数据,所以要先重置<br><br>  fpanel.getForm().reset();<br> }<br><br> <br> /* 修改用户信息  */<br> function updateUser() <br> {<br>  var win_2;<br>  var a = 3;<br>  f();<br>  var selectedRecord = _grid.getSelectionModel().getSelected();    <br>  // 获得多个数据 <br><br>  if (selectedRecord == undefined || selectedRecord == null)<br>  {   <br>   Ext.MessageBox.alert("提示", "请先选择一条记录!");  <br>  } else {   <br>   win_2 = new Ext.Window<br>   ({    <br>    title : "修改用户",    <br>    width : 350,    <br>    height : 250,    <br>    closeAction : "hide",    <br>    plain : true,    <br>    modal : true,// 模态窗口,当打开当前窗口时,后面的内容被遮挡    <br>    bodyStyle : "padding:3px 0 0 3px",    <br>    //layout : "form",<br>    layout:"fit",    <br>    labelWidth : 55,    <br>    items : [fpanel],   <br>    buttons : [<br>               {text:"修改", handler:function() <br>        {fpanel.getForm().submit<br>                  ({        <br>          url:"edit.php",           <br>          method:"POST",           <br>          waitMsg:"数据修改中...",           <br>          success:function(form,action)<br>          {            <br>           win_2.hide();            <br>           Ext.MessageBox.alert("提示","数据修改成功");         <br>           _ds.reload();           <br>          },<br>          failure : function(form, action) {  <br>           win_2.hide();<br>           Ext.MessageBox.alert("提示","<font color='red'>数据修改失败");<br>                       _ds.load();<br>                      }    <br>                  });       <br>        }      <br>               },<br>               {<br>                text : "重置",handler:function() <br>                {<br>                 fpanel.getForm().reset();<br>                }      <br>               },<br>               {<br>                text: '关闭',handler: function()<br>                {<br>                        win_2.close();<br>                 }<br>               }<br>              ]   <br>      });<br>  }<br>  win_2.show();<br>   // 将选中的数据load到window中显示   <br>  //alert(win_2);<br>  win_2.getComponent(0).getForm().loadRecord(selectedRecord);     <br><br> }<br><br> /* 删除用户  */<br> function removeUser(btn) <br> {  <br>  var selectedRecord = _grid.getSelectionModel().getSelected();  <br>  if (selectedRecord == undefined || selectedRecord == null) <br>  {   <br>   Ext.MessageBox.alert("提示", "请先选择一条记录!");  <br>  } else {  <br>   Ext.MessageBox.confirm("提示信息", "确定要删除吗?", function(btn) <br>   {    <br>    if (btn == "yes") <br>    {     <br>     Ext.Ajax.request(<br>     {        <br>      url:"del.php",        <br>      method:"POST",        <br>      params:{id : selectedRecord.data.id},<br>      success:function(request, options)<br>      {         <br>       var jsonRequest = Ext.util.JSON.decode(request.responseText);<br><br>       if (jsonRequest == true) <br>       {<br>        Ext.Msg.alert("提示信息", "删除成功");<br>        _grid.getStore().remove(selectedRecord);          <br>        ds.reload();         <br>       } else {          <br>        Ext.Msg.alert("提示信息", "<font color='red'>删除失败");         <br>       }        <br>      },        <br>      failure : function() <br>      {         <br>       Ext.MessageBox.show<br>       ({            <br>        title : "提示消息",            <br>        msg : "删除时发生错误"           <br>       });        <br>      }       <br>     });    <br>    }   <br>   })  <br>  }<br> }<br><br> <br><br> function chkSelects()<br> {  <br>  var selects = _grid.getSelectionModel().getSelections();  <br>  alert("选中的总数为:"+selects.length);  <br><br> }<br>////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br> function search(){<br>  //fpanel.GridPanel().reset();init();<br><br>  logins.getForm().submit({ //提交表单事件<br><br>    //clientValidation: true,<br>    method:"POST", //提交方式(POSTT和GET)<br>    url:"search.php", //表单提交URL地址<br>    waitMsg:"请稍等,正在搜索...", //提交未完成提示框内容<br>    waitTitle:"正在搜索", //提示框标题信息<br>   });<br>  var url = 'search.php';<br>  // store.proxy=new Ext.data.HttpProxy({url:url});  <br>  ds.reload();<br>   //_proxy = new Ext.data.HttpProxy({url:url});  <br>   //ds.load({params:{start:0,limit:_pageSize}});<br>  //_grid.render('test_id');<br><br> }<br> function jump()<br> {<br>  logins.show();<br> }<br> //////////////////////////////<br><br>}<br>Ext.onReady(init);<br></script>






相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Golang 并发编程模型与工程实践:从语言特性到系统性能
Golang 并发编程模型与工程实践:从语言特性到系统性能

本专题系统讲解 Golang 并发编程模型,从语言级特性出发,深入理解 goroutine、channel 与调度机制。结合工程实践,分析并发设计模式、性能瓶颈与资源控制策略,帮助将并发能力有效转化为稳定、可扩展的系统性能优势。

2

2026.02.27

Golang 高级特性与最佳实践:提升代码艺术
Golang 高级特性与最佳实践:提升代码艺术

本专题深入剖析 Golang 的高级特性与工程级最佳实践,涵盖并发模型、内存管理、接口设计与错误处理策略。通过真实场景与代码对比,引导从“可运行”走向“高质量”,帮助构建高性能、可扩展、易维护的优雅 Go 代码体系。

1

2026.02.27

Golang 测试与调试专题:确保代码可靠性
Golang 测试与调试专题:确保代码可靠性

本专题聚焦 Golang 的测试与调试体系,系统讲解单元测试、表驱动测试、基准测试与覆盖率分析方法,并深入剖析调试工具与常见问题定位思路。通过实践示例,引导建立可验证、可回归的工程习惯,从而持续提升代码可靠性与可维护性。

0

2026.02.27

漫蛙app官网链接入口
漫蛙app官网链接入口

漫蛙App官网提供多条稳定入口,包括 https://manwa.me、https

56

2026.02.27

deepseek在线提问
deepseek在线提问

本合集汇总了DeepSeek在线提问技巧与免登录使用入口,助你快速上手AI对话、写作、分析等功能。阅读专题下面的文章了解更多详细内容。

4

2026.02.27

AO3官网直接进入
AO3官网直接进入

AO3官网最新入口合集,汇总2026年可用官方及镜像链接,助你快速稳定访问Archive of Our Own平台。阅读专题下面的文章了解更多详细内容。

53

2026.02.27

php框架基础教程
php框架基础教程

本合集涵盖2026年最新PHP框架入门知识与基础教程,适合初学者快速掌握主流框架核心概念与使用方法。阅读专题下面的文章了解更多详细内容。

1

2026.02.27

php框架怎么用
php框架怎么用

本合集专为零基础学习者打造,系统介绍主流PHP框架的安装、配置与基础用法,助你快速入门Web开发。阅读专题下面的文章了解更多详细内容。

4

2026.02.27

无禁词AI聊天软件下载大全
无禁词AI聊天软件下载大全

本合集精选多款免费、无违禁词限制的AI聊天软件,支持自定义角色、剧情畅聊,体验真实互动感。阅读专题下面的文章了解更多详细内容。

19

2026.02.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go 教程
Go 教程

共32课时 | 5.6万人学习

R 教程
R 教程

共45课时 | 7.3万人学习

Pandas 教程
Pandas 教程

共15课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号