我正在尝试修改其他人的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 );
}
},
答案 0 :(得分:1)
好的,使用包含其他表单的简单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);
}
...
}