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.name
和formpanel.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);
}
...
}
感谢mschr(成功后等重定向),我不知道如何将其纳入我的成功函数内。看我的编辑.. – Micheal 2012-07-17 18:32:58