我目前正在尝试在EXTJS消息提示框上单击“确定”按钮调用PHP脚本。
由于某些原因,当我使用处理程序时它甚至不显示警告框。但是,当我使用Listener时,它会显示Alert框,但是在单击OK按钮时不会调用php脚本。我在不同的博客上阅读并了解Handler是最好的前进方式
如果有人可以帮助我或指出正确的方向,我将不胜感激。我正在使用最新版本的EXTJS4
下面是我用处理程序编写的EXTJS树面板代码;
var treePanel = Ext.create('Ext.tree.Panel', {
id: 'tree-panel',
title: 'Available Database',
region: 'north',
split: true,
height: 360,
minSize: 150,
rootVisible: false,
autoScroll: true,
store: store,
handler: function() {
if (treePanel.getSelectionModel().hasSelection()) {
var selValue = treePanel.getSelectionModel().getSelection();
Ext.MessageBox.alert('Press OK to confirm your subscription <br>' + selValue[0].data.text,
function(btn, text) {
if (btn == 'ok') {
Ext.Ajax.request({
url: 'addSubscription.php',
params: {
nodetext: text,
parentid: selectedNode[0].data.id
},
success: function(response) {
var id = response.responseText;
grid.getView().refresh();
}
})
} else {
Ext.MessageBox.alert('Record already subscribed');
}
});
}
}
});
答案 0 :(得分:0)
Ext.tree.Panel没有&#39;处理程序&#39;配置中的属性。 处理程序是一种在单击某些组件(例如按钮)时执行的功能。 您可以在treePanel工具栏上添加按钮,并使用按钮处理程序:
...
tbar: [{
xtype: 'button',
text: 'Subscribe',
handler: function(button) {
...
}
}],
...
请参阅jsfiddle:http://jsfiddle.net/FFvLa/
但单击“确定”按钮后不会调用php脚本。
该函数必须作为Ext.Msg.alert中的第三个参数传递: