0

0

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

php中文网

php中文网

发布时间:2016-06-01 12:05:49

|

1066人浏览过

|

来源于php中文网

原创

复制代码

代码如下:

悟智写作
悟智写作

易开即用的AI写作平台

下载

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

<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>








Index.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');
$sql = "select count(*) num from men";
$num = mysql_query($sql);
$count = mysql_fetch_array($num);
$start = $_POST['start'];
$limit = $_POST['limit'];
$sql2 = "SELECT * FROM men limit {$start},{$limit}";
/*
if (!$_POST)
{
 $sql2 = "SELECT * FROM member";
} else {
 $sql2 = "select * from member limit {$start},{$limit}";
}
*/
$data = array();
$result = mysql_query($sql2);
while(!!$info = mysql_fetch_array($result,MYSQL_ASSOC))
{
 $data[] = $info;
}
//$j = json_encode($data);
$j = "{totalProperty:100,root:".json_encode($data)."}";
echo $j;
?>

Add.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文件如下:
复制代码 代码如下:
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数据库,导入就可以。
复制代码 代码如下:
-- 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');

热门AI工具

更多
DeepSeek
DeepSeek

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

豆包大模型
豆包大模型

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

通义千问
通义千问

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

腾讯元宝
腾讯元宝

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

文心一言
文心一言

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

讯飞写作
讯飞写作

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

即梦AI
即梦AI

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

ChatGPT
ChatGPT

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

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

705

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

233

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

117

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

22

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

61

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

30

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

669

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

58

2026.02.12

热门下载

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

精品课程

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

共137课时 | 12.1万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

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

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