0

我目前正在尝试通过单击 EXTJS 消息警报框上的 OK 按钮来调用 PHP 脚本。

由于某种原因,当我使用处理程序时,它甚至不显示警报框。但是,当我使用 Listener 时,它会显示警报框,但在单击 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');
                    }
                });
        }
    }

});
4

1 回答 1

0

Ext.tree.Panel 在配置中没有“处理程序”属性。处理程序是当您单击某些组件(例如按钮)时执行的功能。您可以在 treePanel 工具栏上添加按钮,并使用按钮处理程序:

...
tbar: [{
    xtype: 'button',
    text: 'Subscribe',
    handler: function(button) {
        ...
    }
}],
...

参见 jsfiddle:http: //jsfiddle.net/FFvLa/

但单击“确定”按钮后不会调用 php 脚本。

该函数必须作为 Ext.Msg.alert 中的第三个参数传递:

http://jsfiddle.net/FFvLa/2/

于 2013-02-20T19:02:48.743 回答