2012-11-09 26 views
0

我在我的PHP代碼中下載了一個CSV文件,但它沒有返回到我的Ext JS頁面。我的代碼如下:成功函數不能在Ext JS表單中提交

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

+0

這不是人們爲您調試代碼的地方。找出一個你無法弄清楚的具體問題,然後詢問一下。向人們展示你已經試過的東西,列出你的步驟等。基本調試。 –

+0

有幫助? – dbrin

回答

0

問題是,如果你要返回一個CSV文件附件,你不能期望它被ajax請求處理程序處理,所以不要指望你的成功函數運行。

從文檔

另外:

standardSubmit : Boolean 

如果設置爲true,一個標準的HTML表單提交是用來代替XHR (阿賈克斯)風格表單提交。

這意味着不會有js回調。