Forms ExtJS5下载Excel文件

Forms ExtJS5下载Excel文件,forms,file,download,extjs5,Forms,File,Download,Extjs5,我定义了一个表单,用于提交到PHP脚本,该脚本将使用PHPExcel创建Excel电子表格 Ext.define('Admin.view.main.LedgerParams',{ extend: 'Ext.window.Window', xtype: 'ledgerparams', title: 'Generate Account Ledger', defaultFocus: '[name=period]', layout: 'f

我定义了一个表单,用于提交到PHP脚本,该脚本将使用PHPExcel创建Excel电子表格

Ext.define('Admin.view.main.LedgerParams',{
    extend: 'Ext.window.Window',
    xtype: 'ledgerparams',
    title: 'Generate Account Ledger',           
    defaultFocus: '[name=period]',  
    layout: 'fit',  
    closable: false,
    resizable: false,
    modal : true,
    standardSubmit: true,
    items: [{
        xtype: 'form',      
        layout: 'fit',
        fieldDefaults: {labelWidth: 80,labelAlign: 'right'},
        padding: 10,
        items: [{           
            xtype: 'fieldset',
            padding: 10,
            title: '<b>Account Ledger Parameters</b>',
            defaultType: 'numberfield',
            defaults: {enforceMaxLength: true},
            items:[{                
                name: 'period',
                flex : 1,
                fieldLabel: 'Fiscal Period',
                selectOnFocus: true,
                value: new Date().getFullYear(),
                minValue: 1980
            }]
        }]
    }],
    buttons:[{
        text: 'Generate',
        handler: 'onClick_btnLedgerPrint'
    },{
        text: 'Cancel',     
        handler: function(){this.up('window').destroy();}
    }]
});

但是,表单似乎需要从服务器发出JSON响应,而不是启动下载。ExtJS5中的标准提交是否被破坏?任何帮助都将不胜感激

JavaScript无法启动下载,与Ext JS相同。只有浏览器才能做到这一点

var formValues = btn.up('window').down('form').getForm().getValues();
var params = { action: 'print', reportname: 'generate_ledger' };
var requestParams = Ext.merge(formValues, params);
var url = 'app/data/Reports.php?' + Ext.Object.toQueryString(requestParams);
document.location = url;
或者,您可以尝试使用描述了iframe的方法

var formValues = btn.up('window').down('form').getForm().getValues();
var params = { action: 'print', reportname: 'generate_ledger' };
var requestParams = Ext.merge(formValues, params);
var url = 'app/data/Reports.php?' + Ext.Object.toQueryString(requestParams);
document.location = url;