extjs登录后显示确认表格

问题描述:

我想修改别人的extjs代码,我真的需要一些帮助。extjs登录后显示确认表格

基本上,当验证用户名/密码时,将调用dashboard.js,它包含在index.php中。 现在我需要做的是在验证用户名/密码后,我需要另一个表单弹出询问确认号码。 这不需要验证(只需检查空字符串),只需在窗体中输入,我需要将它保存在会话中。

//index.php 
    <script> 
      Ext.onReady(function() { 

       Web.ip = '<?php print $_SERVER["REMOTE_ADDR"]; ?>'; 

       var sessionInfo = Web.getCookieInfo(); 
       if(sessionInfo) { 
        Web.Dashboard.init(); 
        Web.user = sessionInfo; 

        Web.Dashboard.loadDefault(); 
       } else { 
        Web.Login.init(); 
        Web.Dashboard.init(); 
       } 
      }); 
     </script> 

//dashboard.js 
Web.Dashboard = function() { 

    var contentPanel = new Ext.Panel({ 
     region: 'center', 
     layout: 'fit', 
     margins: '0 5 5 0', 
     border: true, 
     html: '' 
    }); 

    return { 

     init: function() { 
     ........ 
     } 
    } 
}(); 

这里被称为我的成功函数的onsubmit函数内:

success: function(result, request) { 

    try { 
     var obj = Ext.decode(result.responseText); 
     if(obj.success) { 
      var permissions = obj.USER[0].VALUES; 
      var p = {}; 
      for(var i=0 ; i<permissions.length ; i++) { 
       p[permissions[i].PERMISSION] = true; 
      } 


      Web.Dashboard.loadDefault(); 
     } else { 
     //alert ('got here'); 
      if (obj.ErrorCode == 20410) { 
       th.changePasswordWindow.show(); 
       return; 
      } 
      th.loginPanel.form.reset(); 
      th.loginWindow.displayInfo('Invalid username/password'); 
     } 
    } catch(ex) { 
     th.loginWindow.el.unmask(); 
     th.loginPanel.focusUsername(); 
     th.loginPanel.form.reset(); 
     th.loginWindow.displayInfo('Error: ' + ex); 

} 

},

好吧,编辑用一个简单的ActionSheet,含有另一种形式,这将是一个独立的形式,其单个输入字段 - 更改textfield.nameformpanel.url,以便它与您的服务器端匹配。

登录成功后,创建工作表(或其他模式面板弹出窗口)。渲染并显示,然后发送另一个请求到服务器formpanel.getForm().submit(),你应该很好去。

这其中有一个按钮处理样品ActionSheet,适应该功能您的需要

function loginDone() { 
... 
if(success) { 
var pincodeSheet = Ext.create("Ext.ActionSheet", { 
    items: [{ 
     xtype: 'toolbar', 
     cls: 'actionSheetToolbar', 
     itemId: 'id_title', 
     docked: 'top', 
     title: '' 
    }, { 
     xtype: 'spacer', 
     height: 10 
    }, { 
     xtype: 'formpanel', 
     padding: 10, 
     url: 'set_session_variable_serverside.asp', // adapt this 
     items: [{ 
      title: 'Please enter PIN', 
      cls: 'loginTbarTop', 
      xtype: 'toolbar', 
      docked: 'top' 
     }, { 
      xtype: 'toolbar', 
      docked: 'bottom', 
      cls: 'loginTbarBottom', 
      items: [{ 
       xtype: 'spacer' 
      }, { 
       xtype: 'button', 
       text: 'OK', 
       ui: 'action', 
       handler: function(btn,evt) { 
        // perform any validation here 
        pincodeSheet.down('formpanel').getForm().submit(); 
       } 
      }] 
     }, { /* end docked */ 
      cls: 'loginFormFieldset', 
      xtype: 'fieldset', 
      defaults: { 
       labelAlign: 'left', 
       labelWidth: '35%', 
       clearIcon: false 
      }, 
      /* form field declarations */ 
      items: [{ 
       tabIndex: 1, 
       xtype: 'textfield', 
       name: 'session_variable', /// name of input field 
       label: 'PIN CODE' 
      }] /* end form fields */ 
     }] /* end form panel items */ 
    }] /* end sheet items */ 
}); 
pincodeSheet.render(document.body); 


} 

... 
} 
+0

感谢mschr(成功后等重定向),我不知道如何将其纳入我的成功函数内。看我的编辑.. – Micheal 2012-07-17 18:32:58