Ext:如何使用ajax请求中的数据来修改现有的Javascript元素
Ext: how can I use data from an ajax request to modify an existing Javascript element?
几天来,我一直在寻找如何正确完成这项工作的解释。我试图为JS或Ajax找到一个不错的教程,但我找到的所有教程都很基本,不够深入。当我想用Python解决问题时,我会去Python.org,对于PHP,我使用PHP.net,但我还没有找到一个合适的JS和Ajax资源。任何提示都将不胜感激。
所以我会尽力解释我做了什么。我有一个相当简单的页面,左边有一个div,右边有一个div。在左边的树中,将呈现一个表示注册表的树,在右边的树中显示和编辑值。
该树存储在一个全局变量中。我已经阅读了所有关于使用全局变量的警告,但我认为在这种情况下这是合理的。每当访问此页面时,都会显示树。
var tree;
...
function initTree(treeRootConfig) {
return new Ext.tree.TreePanel({
renderTo : 'tree'
,width : 500
,height : 498
,autoScroll : true
,resizable : true
,useArrows : false
,animate : true
,loader : {
dataUrl : urls.urlLoadTree,
listeners: { beforeload : function(treeLoader, node) {} }
},listeners: {
click : function(node, e) { valueGrid.load(node.id); }
,contextmenu : function(node, e) {
cmPath.node = node;
cmPath.showAt(e.getXY());
},
},root : treeRootConfig
});
}
有一个文本字段,其中包含树正在显示的路径的文本表示。
function initTextfieldPath() {
return new Ext.form.TextField({
fieldClass : 'textfieldPath',
applyTo : 'path',
enableKeyEvents: 'true',
listeners : { change : function() { refreshTree(); } },
});
}
每个节点都是路径中的一个"文件夹"。现在,当访问一个新节点时,文本字段的值会相应地修改。这很好用。当在文本字段中输入新路径时,我希望重新加载树以显示节点。路径被解析,然后我使用Ajax从数据库中获取节点。这样做的关键是,我获得了节点的字符串表示,通过JSON进行编码,并尝试将节点设置为树的新根。
function refreshTree() {
Ext.Ajax.request({
url : urls.DirectAccess
,scope : tree
,params : { path: textfieldPath.getValue() }
,success: function(response, opts) {
alert(response.responseText);
tree.setRootNode(Ext.util.JSON.decode(response.responseText)); }
,failure: function(response, opts) { noConnection(response); }
});
}
可以想象,警报只是用于测试目的。当服务器请求完成时,它会显示从数据库中提取的节点的字符串表示。仅仅把这个节点设置到树上是我做不到的。
我们拥有的ext许可证适用于ext 3.4.0。
问题完全是另一回事。我认为不可能从Ajax语句中与Ajax语句外声明的变量进行通信。原来我的"["answers"]"太多了。我的目标预期会出现类似"的情况,但我给了它一个只有一个成员"[]"的数组。不过这有点奇怪,因为在其他情况下,Ext只接受节点作为数组,无论有多少。
- 复制和修改元素,以便在html文档的另一部分使用它们
- 如何修改元素中的现有<内容>
- jQuery 在 ajax 调用后修改元素
- 如何使用带有 % 符号值的 ERB 和 JQuery 修改元素样式属性
- Javascript,在克隆后修改元素
- 当键关闭事件(TAB 键)修改元素值时不触发更改事件
- 修改元素属性后,Jquery 选择器不起作用
- 根据选择选项修改元素
- 文本框的保留值,修改元素后选择
- 如何临时修改元素的CSS
- 使用jQuery拆分和修改元素
- 修改元素'事件函数的参数
- 修改元素的CSS
- 使用jQuery通过ID动态修改元素属性
- 如何修改元素的部分,当它在一个变量
- 使用php修改元素'
- 在Angular.js中,如何在点击时使用ng-repeat迭代对象列表中修改元素的属性?
- javascript修改元素的样式
- 使用jQuery修改元素内容
- 不能使用jquery .on()修改元素的属性