源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-09-01 08:06 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:解析Extjs与php数据交互(增删查改)
[url=./js/resources/css/ext-all.css]<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"> Ext.QuickTips.init(); //初始化快速提示对象 function test() {  Ext.Msg.alert('title','test-yii-ext'); } function renderSex(value) {     if (value == 'male') {         return "<span style='color:red;font-weight:bold;'>红男</span><img src='./images/male.jpg' />";     } else {         return "<span style='color:green;font-weight:bold;'>绿女</span><img src='./images/female.png' />";     } } function init() {  //1、创建url访问类。  var url = 'index.php';  var _proxy = new Ext.data.HttpProxy({url:url});  //2、数据问题参数  var _jsonProperty = "totalProperty";  //数据根目录参数  var _jsonRoot = "root";  //Record显示列表对应关系  var _record = [{name:'id'},              {name:'name'},              {name:'pass'},              {name:'sex'},              {name:'email'}];  //创建JSONReader对象,需要设置记录总数,根目录名称,记录映射  var _reader = new Ext.data.JsonReader({totelPropetty:_jsonProperty,root:_jsonRoot},_record);  /**   * 封装一个客户端的Record对象缓存,为GridPanel提供数据入口   * 需要两个必须的参数   * 1、提供数据的地址:Proxy  代理类   * 2、数据的读取方式:Reader 类,这里通过JsonReader读取   */  var _store = new Ext.data.Store({   proxy:_proxy,   reader:_reader  });  /**  ColumnModel  * 数据在页面上显示标题信息,  * 顺序和Record对应  * sortable 是否排序  * dataIndex 进行对应的列,对应Record中的NAME  *  * handler方法中 第一个参数表示父类的对象,本例中为GridPanel对象。  * 第二个参数表示第几行。  * 第三个参数表示第几列。  */  var _cm = new Ext.grid.ColumnModel([   new Ext.grid.RowNumberer(),   new Ext.grid.CheckboxSelectionModel(),                                       {header:"ID",dataIndex:"id",width:50,sortable:true,menuDisabled:true},   {header:"用户名",dataIndex:"name",width:80,sortable:true},   {header:"密码",dataIndex:"pass",width:175,sortable:true},   {header:"性别",dataIndex:"sex",width:145,sortable:true,renderer:renderSex},   {header:"电子邮箱",dataIndex:"email",width:150,sortable:true}  ]); /////////////////////////搜索  var logins = new Ext.form.FormPanel({    id:'myform',//分配表单id     title: '按用户名搜索',     width: 400,     defaultType: 'textfield',     frame: true,    // method: 'POST',     collapsible: true,//可折叠     bodyPadding: 5,     layout: 'column',//列布局     margin: '0 0 10 0',     items: [{         fieldLabel: '姓名',         labelWidth: 40,         id: 'name'     }],     buttons: [{        // xtype: 'button',         text: '搜索',         margin: '0 0 0 5',         handler: search     },{         // xtype: 'button',         text: '隐藏',         margin: '0 0 0 5',         handler: hide     }],     renderTo: "search"  })  logins.hide();  function hide()  {   logins.hide();   } ///////////////////////////////////////////////////////  ///////////////////////////////////////////////////////////////////////////////////////////  //获取数据  var ds = new Ext.data.Store({   //proxy告诉我们从哪获得数据,Ext.data.MemoryProxy专门解析js变量   //proxy:new Ext.data.MemoryProxy(data),   //通过http获取数据   proxy:new Ext.data.HttpProxy({    url:url}),   //获取json数据   reader:new Ext.data.JsonReader({    totalProperty:'totalProperty',    root:'root'   },Ext.data.Record.create([      {name:'id'},      {name:'name'},      {name:'pass'},      {name:'sex'},      {name:'email'}   ]))  }); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////  //自动分页  var _pageSize = 16;  var _toolbar = new Ext.PagingToolbar({   store:ds,   pageSize:_pageSize,   displayInfo:true,   displayMsg:'显示第{0}条到第{1}条记录,一共{2}条',   emptyMsg:'暂无数据'  });  //顶部工具栏按钮  var t_toolbar = [   {id:"addData",text:"用户添加",handler:addUser},"-",        {id:"updateData",text:"用户修改",listeners:{"click":updateUser}},"-",        {id:"deleteData",text:"删除选中用户",handler:removeUser},"-",        {id:"test",text:"测试选中",handler:chkSelects},"-",        {id:"search",text:"搜索",handler:jump}     ];  /**   * GridPanel对象   * 数据列表页面   * 必须设置 Store 数据访问对象和标题栏显示信息   * 即 Store和ColumnModel对象   */  var _grid = new Ext.grid.GridPanel({   headerAsText: false, // 如果有标题栏, 隐藏标题栏   collapsible: true,//可折叠   height:500,   width:1100,   frame:true,//圆角边框   store:ds,   title:'测试yii整合Ext',   cm:_cm,   bbar : _toolbar,   tbar : t_toolbar  });  ds.load({params:{start:0,limit:_pageSize}});  _grid.render('test_id');  //_grid.render();  /* 用户信息录入框,验证  */  var fpanel;  function f(){  fpanel = new Ext.form.FormPanel  ({      frame : true,//边框圆角并且有背景色      labelAlign : 'right',      waitMsgTarget : true,      autoScroll : true,      buttonAlign : 'center',      items : [            {xtype:"hidden",name:"id"},      {xtype:"textfield",fieldLabel:"用户名",name:"name",anchor : "-20",allowBlank:false,//是否允许为空                blankText:"用户名不允许为空!",labelWidth : 20},            {xtype:"radiogroup",fieldLabel:"性别",columns:2,allowBlank:false,blankText:"性别不允许为空!",items:[{boxLabel:'男',name:'sex',inputValue:'male'},{boxLabel:'女',name:'sex',inputValue:'female'}]},      {xtype:"textfield",fieldLabel:"密码",name:"pass",allowBlank:false,//是否允许为空                        blankText:"密码不允许为空!",anchor : "-20"},      {xtype:"textarea",fieldLabel:"电子邮箱",name:"email",allowBlank:false,//是否允许为空                            blankText:"邮箱不允许为空!",anchor : "-20"}     ]  }); }  var win;  /* 增加用户  */  function addUser()  {   f();   win = new Ext.Window   ({        title:"新增用户",    id:"win",    //animEl:"fly",    //layout:"fit",    width:350,        height:250,        closeAction : "close",       plain : true,       modal : true,// 模态窗口,当打开当前窗口时,后面的内容被遮挡     bodyStyle:"padding:3px 0 0 3px",        layout:"form",        labelWidth:55,        items:[fpanel],     buttons:[               {text:"保存", handler :function()                {              //在保存的时候,因为Id值为空,所以不能转换到后台,后台报类型转换异常,可以将Id设值为0,             //在后台处理的时候,对于值为0的Id不获取                      fpanel.findByType("hidden")[0].setValue(0);                      fpanel.getForm().submit({                       url : "add.php",                       method : "POST",                       waitMsg : "保存数据...",                       success : function(form, action) {                            // 业务成功                         Ext.MessageBox.alert('提示','添加成功!');                           win.close();                           ds.load({params:{ start:0,limit:_pageSize} });                       },                        failure : function(form, action) {                            // 业务失败                                              obj = Ext.util.JSON.decode(action.response.responseText);                       Ext.MessageBox.alert('提示', obj.errors.reason);                       win.close();                       ds.load({params:{ start:0,limit:_pageSize} });                      }                   });                }                    },                {                  text:"重置",handler:function()                 {                        fpanel.getForm().reset();          }                    }             ]        })   win.show();   // 因为重复使用window,有可能在修改后fpanel中还存在数据,所以要先重置   fpanel.getForm().reset();  }    /* 修改用户信息  */  function updateUser()  {   var win_2;   var a = 3;   f();   var selectedRecord = _grid.getSelectionModel().getSelected();      // 获得多个数据   if (selectedRecord == undefined || selectedRecord == null)   {      Ext.MessageBox.alert("提示", "请先选择一条记录!");    } else {      win_2 = new Ext.Window    ({        title : "修改用户",        width : 350,        height : 250,        closeAction : "hide",        plain : true,        modal : true,// 模态窗口,当打开当前窗口时,后面的内容被遮挡        bodyStyle : "padding:3px 0 0 3px",        //layout : "form",     layout:"fit",        labelWidth : 55,        items : [fpanel],       buttons : [                {text:"修改", handler:function()         {fpanel.getForm().submit                   ({                  url:"edit.php",                     method:"POST",                     waitMsg:"数据修改中...",                     success:function(form,action)           {                       win_2.hide();                       Ext.MessageBox.alert("提示","数据修改成功");                    _ds.reload();                     },           failure : function(form, action) {             win_2.hide();            Ext.MessageBox.alert("提示","<font color='red'>数据修改失败</font>");                        _ds.load();                       }                      });               }                     },                {                 text : "重置",handler:function()                 {                  fpanel.getForm().reset();                 }                     },                {                 text: '关闭',handler: function()                 {                         win_2.close();                  }                }               ]         });   }   win_2.show();    // 将选中的数据load到window中显示     //alert(win_2);   win_2.getComponent(0).getForm().loadRecord(selectedRecord);      }  /* 删除用户  */  function removeUser(btn)  {    var selectedRecord = _grid.getSelectionModel().getSelected();    if (selectedRecord == undefined || selectedRecord == null)   {      Ext.MessageBox.alert("提示", "请先选择一条记录!");    } else {     Ext.MessageBox.confirm("提示信息", "确定要删除吗?", function(btn)    {        if (btn == "yes")     {          Ext.Ajax.request(      {              url:"del.php",              method:"POST",              params:{id : selectedRecord.data.id},       success:function(request, options)       {                var jsonRequest = Ext.util.JSON.decode(request.responseText);        if (jsonRequest == true)        {         Ext.Msg.alert("提示信息", "删除成功");         _grid.getStore().remove(selectedRecord);                  ds.reload();                } else {                  Ext.Msg.alert("提示信息", "<font color='red'>删除失败</font>");                }              },              failure : function()       {                Ext.MessageBox.show        ({                    title : "提示消息",                    msg : "删除时发生错误"                  });              }            });        }      })    }  }    function chkSelects()  {    var selects = _grid.getSelectionModel().getSelections();    alert("选中的总数为:"+selects.length);   } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////  function search(){   //fpanel.GridPanel().reset();init();   logins.getForm().submit({ //提交表单事件     //clientValidation: true,     method:"POST", //提交方式(POSTT和GET)     url:"search.php", //表单提交URL地址     waitMsg:"请稍等,正在搜索...", //提交未完成提示框内容     waitTitle:"正在搜索", //提示框标题信息    });   var url = 'search.php';   // store.proxy=new Ext.data.HttpProxy({url:url});    ds.reload();    //_proxy = new Ext.data.HttpProxy({url:url});     //ds.load({params:{start:0,limit:_pageSize}});   //_grid.render('test_id');  }  function jump()  {   logins.show();  }  ////////////////////////////// } Ext.onReady(init); </script> </head> <body> <p style="height:10px;"></p> <div id="test_id"></div> <div id="search"></div> </body> </html>
Index.php文件 Add.php文件如下:
[u]复制代码[/u] 代码如下:
<?php header("Content:text/html;charset=utf-8"); $link = mysql_connect("localhost","root","123456")or die('error'.mysql_error()); mysql_select_db("stu",$link); mysql_query('set names utf8'); $name = $_POST['username']; $pwd = $_POST['password']; $time = $_POST['regTime']; $email = $_POST['email']; /* $name = 'aaaa'; $pwd = 'aaaa'; $time = '2011-12-31'; $email = 'aaaa';*/ $sql = "INSERT INTO men (username,password,regTime,email) VALUES ('{$name}','{$pwd}','{$time}','{$email}')"; //mysql_query($sql) if (mysql_query($sql)) {  echo 'ok'; } ?>
Del.php文件如下:
[u]复制代码[/u] 代码如下:
<?php header("Content:text/html;charset=utf-8"); $link = mysql_connect("localhost","root","123456")or die('error'.mysql_error()); mysql_select_db("stu",$link); mysql_query('set names utf8'); $id = $_POST['id']; $sql = "DELETE FROM men WHERE id={$id}"; if (mysql_query($sql)) {  echo 1; } else {  echo 0; } ?>
数据库文件men.sql 数据库名叫:stu 表名为:men 可以把下面的复制到一个文本文档里,然后新建stu数据库,导入就可以。
[u]复制代码[/u] 代码如下:
-- phpMyAdmin SQL Dump -- version 2.11.2.1 -- http://www.phpmyadmin.net -- -- 主机: localhost -- 生成日期: 2012 年 01 月 11 日 10:02 -- 服务器版本: 5.0.45 -- PHP 版本: 5.2.5 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- 数据库: `stu` -- -- -------------------------------------------------------- -- -- 表的结构 `men` -- CREATE TABLE `men` (   `id` int(11) unsigned NOT NULL auto_increment,   `name` varchar(50) collate utf8_unicode_ci NOT NULL,   `pass` varchar(32) collate utf8_unicode_ci NOT NULL,   `sex` varchar(10) collate utf8_unicode_ci NOT NULL,   `email` varchar(50) collate utf8_unicode_ci NOT NULL,   PRIMARY KEY  (`id`) ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=28 ; -- -- 导出表中的数据 `men` -- INSERT INTO `men` (`id`, `name`, `pass`, `sex`, `email`) VALUES (1, '赵四', '123456', 'female', '646588973@qq.com'), (2, '测试修改', '123456', 'male', 'test@qq.com'), (8, '赵勇2', '123456', 'male', 'sfsf@qq.com'), (9, '赵勇3', '123456', 'male', 'sfsf@qq.com'), (10, '赵勇5', '123456', 'male', 'sfsf@qq.com'), (11, 'asdfsf', 'asfsfsf', 'male', 'safsf'), (18, '12', '123', 'male', '123'), (19, '123', '123', 'female', '123'), (20, '123123', '123', 'female', '123'), (21, 'safdsdf', 'sdf', 'female', 'sdf'), (22, 'sdfsdf', 'sdfsdf', 'male', 'sdf'), (23, 'test', 'test', 'male', 'test@qq.com'), (24, 'saf', 'asdfs', 'male', 'asdf'), (25, 'dfgdfg', 'dfgdfg', 'male', 'dfgdfg'), (26, 'ertert', 'erter', 'male', 'tertert'), (27, '1asdf', 'sdf', 'male', 'sdf');
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部