成功函数无法在Ext JS表单中提交

时间:2012-11-09 06:08:23

标签: php extjs

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

Ext JS Code

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文件。

1 个答案:

答案 0 :(得分:0)

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

同样来自文档:

standardSubmit : Boolean
  

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

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