使用EXTJS警报消息框调用PHP脚本

时间:2013-02-20 16:59:42

标签: php extjs extjs4.1 jstree

我目前正在尝试在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');
                    }
                });
        }
    }

});

1 个答案:

答案 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中的第三个参数传递:

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