- 浏览: 3325957 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (567)
- Web前端-html/表单 (19)
- Web前端-CSS (24)
- Web前端-CSS框架 (4)
- Web前端-JS语言核心 (50)
- Web前端-JS客户端 (26)
- nodejs生态+grunt (10)
- seajs和requirejs (9)
- backbone等框架 (7)
- 模板基础 (7)
- Web前端-deps(不改动) (6)
- Web前端-component (10)
- Web前端-jquery-plugin (13)
- 浏览器兼容性 (6)
- Web前端-使用jQuery (25)
- Web前端-使用jqueryui (6)
- Web前端-性能优化 (3)
- Web协议-HTTP (6)
- ExtJS (13)
- PHP (22)
- PHP面向对象 (4)
- PHP扩展-SOAP (6)
- PHP扩展-curl (4)
- PHP与HTML(导出) (5)
- PHP扩展-综合 (7)
- mysql基础应用 (18)
- 技术心情 (18)
- 算法和面试题 (17)
- 工具(开发)使用 (36)
- memcached原理 (2)
- session和cookie (4)
- UML (2)
- Web前端_FusionCharts (5)
- Web前端_Flex (4)
- Web前端_JSP (3)
- JavaSE (10)
- JavaEE (4)
- tomcat (2)
- Servlet开发 (3)
- Spring开发 (1)
- REST相关 (2)
- 大访问量、高并发 (2)
- 网络编程 (1)
- YII (21)
- linux命令和内核 (12)
- yii与数据库 (10)
- yii与表单 (12)
- yii view层 (1)
- perl (7)
- yii扩展 (7)
- shell (4)
- photoshop (7)
- 视觉设计 (2)
- 我关注的名人在路上 (4)
- 1-自学能力 (1)
- 2-人际沟通能力 (3)
- 3-职业规划能力 (7)
- 4-项目管理能力 (2)
- python (3)
- django (4)
- Mysql高级应用 (6)
- prototype.js (4)
- Web系统安全 (1)
- Web前端-mobile (2)
- egret (6)
- jQuery源码分析 (5)
- fis (4)
最新评论
-
yzq21056563:
感谢作者分享~请教下,http://www.lisa33xia ...
CSS基础:text-overflow:ellipsis溢出文本 -
u012206458:
$.ajax的error,complete,success方法 -
DEMONU:
谢谢,虽然不能给你赞助,但是要给你顶
mysql中key 、primary key 、unique key 与index区别 -
njupt_tolmes:
阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿滕庆亚 ...
CSS基础:text-overflow:ellipsis溢出文本 -
zenmshuo:
用过SpreadJS,也包含数据可视化的图表
推荐几个web中常用js图表插件
一、前端js代码
二、后端php代码
三、数据库PDO
四、companyName_get_data方法
如果您觉得本文的内容对您的学习有所帮助,您可以微信:
// JavaScript Document Ra.ServerFailsInfo.bydepart = function(grid_id,level,department,product,service){ /******************** 公共 ************************/ var store = { 'department' : new Ext.data.JsonStore({ url: 'api/list_k.php?action=department', fields: ['name']}), 'product' : new Ext.data.JsonStore({ url: 'api/list_k.php?action=product', fields: ['name']}), 'service' : new Ext.data.JsonStore({ url: 'api/list_k.php?action=service', fields: ['name']}) }; // 从服务器获取查询结果 // 先设置jsonStore,然后load var jsonStore = new Ext.data.JsonStore({ url: 'api/fail_parts_bydepart.php', listeners:{ 'loadexception' : function(e){ alert(e.toString()); } }, fields: [ {name: 'name'}, {name: 'flash'}, {name: 'percent'} ] }); //仅执行一次(打开时tab时默认) jsonStore.load({params:{ 'level' : 'all', 'department' : department, 'product': product, 'service': service }}); // 定义一个对象,用于向服务器端传值 var paras = {}; paras.view_level = '公司级别'; // 表体 —— tbar var tbar_depart = new Ext.Toolbar({ items :[{ xtype: 'tbtext', text : "查看级别:" },'-', new Ext.form.ComboBox({ id : 'failparts-view_level', store: ['公司级别','部门级别','产品线级别','子分类级别'], allowBlank:false, triggerAction: 'all', width :100, displayValue :'部门级别', value :'部门级别', name : 'view_level', listeners : { 'select' : function(obj, data, index){ // obj是combobox对象,data是用户选择的值,index是索引(0,1,2...) vlevel = data.data.text;// 用户选择的值,此处为何是text,而不是name? paras.view_level = data.data.text; Ext.getCmp('failparts-form-department').clearValue();//通过id得到一个Component对象 paras.department = ''; // 部门 Ext.getCmp('failparts-form-product').clearValue(); paras.product = ''; // 产品线 Ext.getCmp('failparts-form-service').clearValue(); paras.service = ''; // 子分类 switch(vlevel){ case '公司级别': Ext.getCmp('failparts-form-department').setVisible(false); Ext.getCmp('failparts-form-product').setVisible(false); Ext.getCmp('failparts-form-service').setVisible(false); break; case '部门级别': Ext.getCmp('failparts-form-department').setVisible(true); Ext.getCmp('failparts-form-product').setVisible(false); Ext.getCmp('failparts-form-service').setVisible(false); break; case '产品线级别': Ext.getCmp('failparts-form-department').setVisible(true); Ext.getCmp('failparts-form-product').setVisible(true); Ext.getCmp('failparts-form-service').setVisible(false); break; case '子分类级别': Ext.getCmp('failparts-form-department').setVisible(true); Ext.getCmp('failparts-form-product').setVisible(true); Ext.getCmp('failparts-form-service').setVisible(true); break; default: Ext.getCmp('failparts-form-department').setVisible(true); } } } }),'-', new Ext.form.ComboBox({ id : 'failparts-form-department', allowBlank:false, store: store['department'], // 引用store displayField:'name', triggerAction: 'all', hidden : true, emptyText:'请选择部门', width :110, name : 'department', listeners : { 'select' : function(obj, data, index){ paras.department = data.data.name; //此处为何是name,而不是text? if(paras.view_level == '产品线级别' ||paras.view_level == '子分类级别'){ store.product.baseParams = {'department' : encodeURIComponent(data.data.name)}; store.product.load(); Ext.getCmp('failparts-form-product').clearValue(); Ext.getCmp('failparts-form-product').setVisible(true); } } } }), new Ext.form.ComboBox({ id : 'failparts-form-product', store: store.product, // 引用store displayField:'name', hidden : true, width : 120, emptyText:'请选择产品线', triggerAction: 'all', name : 'product', listeners : { 'select' : function(obj, data, index){ paras.product = data.data.name; if(paras.view_level == '子分类级别'){ store.service.baseParams = { //把字符串作为 URI 组件进行编码 'product' : encodeURIComponent(data.data.name), 'department' : paras.department }; store.service.load(); Ext.getCmp('failparts-form-service').clearValue(); Ext.getCmp('failparts-form-service').setVisible(true); } } } }), new Ext.form.ComboBox({ id : 'failparts-form-service', store: store.service, // 引用store displayField:'name', hidden : true, emptyText:'请选择子分类', width : 200, triggerAction: 'all', name : 'service', listeners : { 'select' : function(obj, data, index){ paras.service = data.data.name; } } }), { iconCls : 'search', text : '<b>更新内容</b>', handler : function() { switch(paras.view_level) { case '公司级别': var level = 'all'; break; case '部门级别': var level = 'department'; break; case '产品线级别': var level = 'product'; break; case '子分类级别': var level = 'service'; break; default: break; } if ( level == 'department' && paras.department == '' ) { Ext.Msg.alert('友情提示','请选择要查询的部门!'); return; } if ( level == 'product' && (paras.department == '' || paras.product == '') ) { Ext.Msg.alert('友情提示','请选择要查询的部门-产品线!'); return; } if ( level == 'service' && (paras.department == '' || paras.product == '' || paras.service == '' ) ) { Ext.Msg.alert('友情提示','请选择要查询的部门-产品线-子分类!'); return; } // 获取选择的值 //Ext.Msg.alert(level,paras.department + ', ' + paras.product + ', ' + paras.service); jsonStore.load({params:{ 'level' : level, 'department' : paras.department, 'product': paras.product, 'service': paras.service }}); } },'->', Baidu.Ra.Excel(grid_id) ] }); // 表格面板的列模型 var cm = new Ext.grid.ColumnModel([ {header:'机型',dataIndex:'model',width:100,sortable:true} ,{header:'部件类型',dataIndex:'parts_type',width:100,sortable:true} ,{header:'部件总数量',dataIndex:'total',width:100,sortable:true} ,{header:'故障数量',dataIndex:'num',width:100,sortable:true} ,{header:'故障率',dataIndex:'percent',width:100,sortable:true} ]); // 表格面板。也有Ext.FormPanel var panel = new Ext.grid.GridPanel({ baseCls: 'x-plain', id:grid_id, title:'按部门统计', closable:true, cm:cm, store:jsonStore, loadMask: { msg: '数据获取中,请稍候...' }, tbar:tbar_depart, region:'center' }); CompanyName.Ra.tabCon.add(panel); CompanyName.Ra.tabCon.activate(panel); }
二、后端php代码
require "CompanyName/Rss/Common/config.inc"; require "CompanyName/Util/util.inc"; require "CompanyName/Rss/Module/db.inc"; require "CompanyName/Rss/Control/func.inc"; $idc = urldecode(companyName_get_data(B_REQUEST, 'idc')); $dep = urldecode(companyName_get_data(B_REQUEST, 'department')); $finance= urldecode(companyName_get_data(B_REQUEST, 'finance')); $product= urldecode(companyName_get_data(B_REQUEST, 'product')); $action = urldecode(companyName_get_data(B_REQUEST, 'action')); $iden = urldecode(companyName_get_data(B_REQUEST, 'iden')); $suffix = date("Ym", time()); $table = "service_list"; switch($action){ case 'service' : $sql = "select distinct service as name from $table where department='$dep'"; if($product != '[全部]'){ $sql .= " and product='$product'"; } break; case 'product' : $sql = "select distinct product as name from $table where 1"; if($dep != '[全部]'){ $sql .= " and department='$dep'"; } break; case 'getflag': break; default: $sql = "select distinct department as name from $table"; } $sth = $pdo->prepare($sql); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_ASSOC); print json_encode($result);
三、数据库PDO
//在另一个config.php文件中,用define(key, value);方式设置用户名密码等。 $dsn = sprintf("mysql:host=%s;dbname=%s;port=%d;charset=%s", DB_HOST, DB_NAME, DB_PORT, DB_CHARSET); try{ $pdo = new PDO($dsn, DB_USER, DB_PASSWORD); $pdo->query("set names " . DB_CHARSET); }catch(PDOException $e){ error_log($e->getMessage()); } $dsn = sprintf("mysql:host=%s;dbname=%s;port=%d;charset=%s", DB_HOST_BUDGET, DB_NAME_BUDGET, DB_PORT, DB_CHARSET); try{ $pdo_budget = new PDO($dsn, DB_USER, DB_PASSWORD); $pdo_budget->query("set names " . DB_CHARSET); }catch(PDOException $e){ error_log($e->getMessage()); }
四、companyName_get_data方法
define('B_GET', 0); define('B_POST', 1); define('B_REQUEST',2); define('B_COOKIE', 3); function companyName_get_data($method=B_REQUEST, $name, $filter="B_RAW"){ switch($method){ case B_GET: $ret = isset($_GET[$name])? $_GET[$name] : NULL; break; case B_POST: $ret = isset($_POST[$name])? $_POST[$name] : NULL; break; case B_REQUEST: $ret = isset($_REQUEST[$name])? $_REQUEST[$name] : NULL; break; case B_COOKIE: $ret = isset($_COOKIE[$name])? $_COOKIE[$name] : NULL; break; default: $ret = NULL; break; } return $ret; } /* bool redirect_and_exit($url) * this function alone for the reason to handle of done url * @para : the full url (scheme :// host / path / script ? query # anchor); */ function redirect_and_exit($url){ header("Location:$url"); exit(); }
如果您觉得本文的内容对您的学习有所帮助,您可以微信:
发表评论
-
ExtJS ajax request 设置超时时间
2012-05-03 23:32 10078作者:zccst 查了一下资料,设置超时时间有好几种情况 ... -
ExtJS之GridPanel细分功能
2012-01-30 18:45 990zccst整理 二、 一、将结果分组展示 表格数据分组: ... -
ExtJS之EditorGridPanel
2011-12-28 18:01 7230作者:zccst 之前大多用Ext.grid.GridPan ... -
ExtJS正确的学习方式
2011-12-28 15:53 1278ExtJS与其他的技术稍微不同的是需要查手册,而不是从网上搜。 ... -
ExtJS之Store
2011-11-09 18:17 20074据目前所知:Store至少分为两类,一个是SimpleStor ... -
ExtJS表单之下拉树
2011-11-09 12:03 5578ExtJS表单之下拉树 作者:zccst 一、数据源 ... -
ExtJS表单之一个实例
2011-11-08 14:32 5390作者:zccst 一个实例, ... -
ExtJS表单之复选框CheckboxGroup展示与取值
2011-11-08 14:23 54045版本一 复选框的值都是 ... -
ExtJS之xtype的意义
2011-11-02 14:21 1625xtype:在EXTJS的可视化组件部署中的一种机制,即通过指 ... -
ExtJS面板
2011-11-02 12:13 1432面板的定义与多种面板的区别 一、Panel var panel ... -
Ext中的get、getDom、getCmp、getBody、getDoc的区别
2011-11-02 11:48 1024Ext中的get、getDom、getCmp、getBody、 ... -
ExtJS开发环境搭建
2011-06-20 14:38 1345需要注意的事项: 1,引入extjs不是引入ext-base ...
相关推荐
本文将深入探讨如何使用ExtJS 3结合MySQL来实现一个省份城市二级联动的前端与后台系统。 首先,ExtJS 3提供了丰富的组件和API,使得开发者可以轻松创建各种复杂的用户界面,如下拉菜单、表格、表单等。在这个案例中...
2仿Extjs的左菜单,可动态绑定数据集,采用fontawesome作为图片; 3左菜单联动的中间部分的Tab控件,Tab页可关闭。 补充:该项目用vs2012运行。 准备修改积分的,原代码找不到了,麻烦管理员将这个资源删除,...
ExtJS4学习笔记(十六)---Combobox三级联动 ExtJS4学习笔记(十四)--- ComponentQuery ExtJS4学习笔记(四)---Grid的使用 Extjs4开发笔记(三)——菜单的实现 Extjs4开发笔记(二)——框架的搭建 Extjs4开发笔记(五)——...
5.4.6 创建三级或多级菜单 5.4.7 具有选择框的菜单 第6章 页面元素与模板 6.1 构成用户界面的元素 6.2 获取页面元素 6.3 元素常见的使用方法 6.3.1 常见的“显示/隐藏”方法 6.3.2 常见的“内容控制”方法 ...
- **Combobox三级联动**:实现级联选择框,用于展示层次关系的数据。 #### 5. 员工管理系统 最后,本章节通过构建一个简单的员工管理系统来综合运用前面所学的知识点。 - **准备工作**:介绍项目开始前所需的准备...
- **Combobox 三级联动**:实现级联选择框的功能。 #### 5. 员工管理系统 - **准备工作**:规划项目结构和所需技术栈。 - **框架的搭建**:配置 Extjs 和后端服务。 - **菜单的实现**:创建导航菜单。 - **实现...
5.4.6 创建三级或多级菜单 5.4.7 具有选择框的菜单 第6章 页面元素与模板 6.1 构成用户界面的元素 6.2 获取页面元素 6.3 元素常见的使用方法 6.3.1 常见的“显示/隐藏”方法 6.3.2 常见的“内容控制”方法 ...
-增加中国的省市县三级联动示例(data/shengshixian.aspx)(feedback:Blues T)。 -修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。 -修正了启用...
-增加中国的省市县三级联动示例(data/shengshixian.aspx)(feedback:Blues T)。 -修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。 -修正了启用...