2011-04-15 35 views
0

我試圖從MySQL數據導出一些使用PHP生成的表。我試圖通過AJAX發送信息到一個文件中使用此代碼:使用PHP + Jquery導出到XLS的問題

<?php 
header("Content-type: application/vnd.ms-excel; name='excel'"); 
header("Content-Disposition: filename=excel.xls"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
echo $_POST['table']; 
?> 

本數據來源於此功能

function export_excel (id_table) { 
    var table = $("#" + id_table).html(); 
    $.ajax({ 
      type: 'POST', 
      url: 'toexcel.php', 
      data: 'table='+table 
     }); 
} 

通過Firebug的,我可以看到,該表是正確的呼應,但它不會開始任何下載。這可能是問題所在?

回答

2

作爲對Ajax請求的響應,無法啓動文件下載。您必須發送瀏覽器來獲取資源,就像您正在瀏覽頁面一樣。

如果需要使用POST方法,我認爲理想的方式做,這將是:

  • 有在其中你寫的POST數據的真實<form>元素

  • 有一個看不見的或小的iframe。給它一個名稱

  • 給形式的iframe的名稱作爲target財產

  • submit()形式

如果所有標題都設置正確(您可能需要增加更多一些,像Content-disposition: attachment),這應該會觸發文件下載而不會影響當前頁面。

如果你可以使用GET,一個簡單的

location.href="toexcel.php?param1=value1&param2=value2" 

應該這樣做了。

+0

不錯,與GET它確實工作!非常感謝:D – 2011-04-15 11:26:34