2013-02-20 96 views
0

我正在嘗試在EXTJS消息警告框上單擊確定按鈕時調用PHP腳本。 由於某些原因,當我使用處理程序時它甚至不顯示警報框。但是,當我使用Listener時,它會顯示Alert框,但不會在單擊OK按鈕時調用php腳本。我閱讀了不同的博客,並瞭解Handler是繼續前進的最佳途徑使用EXTJS警報消息框調用PHP腳本

如果有人能幫助我或指引我走向正確的方向,我將不勝感激。 Iam使用最新版本的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

Ext.tree.Panel在config中沒有'handler'屬性。 Handler是一個當您點擊某些組件(如按鈕)時執行的功能。 您可以添加按鈕,您的TreePanel中的工具欄上,並使用按鈕處理程序:

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

查看的jsfiddle:http://jsfiddle.net/FFvLa/

但在點擊確定按鈕不會調用PHP腳本。

函數必須作爲第三個參數中Ext.Msg.alert傳遞:

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

+0

感謝您的信息,但我想處理這對MessageBox.Alert對話框不是通過創建按鈕 – 2013-02-22 14:39:42

+0

@ShoaibSuleman使用監聽器(如'boxready')並傳遞迴調函數作爲第三個參數。不如2. Jsfiddle:http://jsfiddle.net/FFvLa/3/ – Vlad 2013-02-22 15:04:00

+0

我使它與tbar合作,現在它的好處是我的項目UAT約會並不遙遠。但是,謝謝你的幫助 – 2013-02-22 15:27:27