0

我正在我的 PHP 代码中下载一个 CSV 文件,但它没有返回到我的 Ext JS 页面。我的代码如下:

外部 JS 代码

Ext.getCmp('btnExport').on('click', function(button, event)    
{       
    Ext.getCmp("frmReportQuotes").getForm().standardSubmit = true;      
    Ext.getCmp('frmReportQuotes').getEl().dom.method = 'POST';      
    Ext.getCmp('frmReportQuotes').getEl().dom.target = '_blank';        
    Ext.getCmp('frmReportQuotes').getForm().submit({        
        params: {       
            output: 'csv'    
        },    
        success: function(form, action){        
            alert('jjkjlkj');           
        },    
        failure: function(form, action){    
            alert('jjkjlkj');           
        }    
    });    
});

PHP 代码

if (!empty($strOutputType) && $strOutputType == 'csv')    
{       
    header("Content-type: text/csv");       
    header("Content-Disposition: attachment; filename=data.csv");       
    header("Pragma: no-cache");     
    header("Expires: 0");

    if (!empty($entRequestList))    
    {
        $arrKeys = array();

        foreach ($this->view->Data[0] as $key => $value)    
            $arrKeys[] = $key;

        echo '"' . implode('","', $arrKeys) . '"' . "\n";           

        foreach ($this->view->Data as $entRow)
        {
            $strCSV = '"' . implode('","', $entRow) . '"';
            $strCSV = preg_replace("[\n\r]", " ", $strCSV);
            echo $strCSV . "\n";
        }
    }

    die();
}

请帮忙,以便它返回到我的 Ext JS 文件。

4

1 回答 1

0

问题是,如果您返回一个 CSV 文件附件,您不能期望它被 ajax 请求处理程序处理,所以不要期望您的成功函数能够运行。

同样来自文档:

standardSubmit : Boolean

如果设置为 true,则使用标准 HTML 表单提交而不是 XHR (Ajax) 样式的表单提交。

这意味着不会进行任何 js 回调。

于 2012-11-09T06:22:28.777 回答