0

PHP コードで CSV ファイルをダウンロードしていますが、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ファイルに戻るように助けてください。

4

1 に答える 1

0

問題は、CSV 添付ファイルを返す場合、それが ajax 要求ハンドラーによって処理されることを期待できないため、成功関数が実行されることを期待しないことです。

また、ドキュメントから:

standardSubmit : Boolean

true に設定すると、XHR (Ajax) スタイルのフォーム送信ではなく、標準の HTML フォーム送信が使用されます。

つまり、js コールバックは行われません。

于 2012-11-09T06:22:28.777 に答える