2012-06-04 39 views
0

我發佈了一個HTML表格數據作爲json到服務器端使用jquery $ .post寫入整個表數據到csv文件。但是這不會輸出用戶可下載的csv。使用jQuery發佈後發佈和下載csv

我想彈出csv文件(當我們下載一個文件,它通常發生的情況。你知道SAVE或CSV開盒)

客戶端代碼

//selectedData is having the data as json 

$.post('ajax/csv_download.php', { 
    selectedData: JSON.stringify(selectedData) 
}, function(html){ }); 

服務器Side code

global $fh; 
    $fh = @fopen('php://output', 'w'); 
    $post_data = json_decode($_POST['selectedData']); 
    foreach ($post_data as $arr) 
    { 
    $val1 = $arr->val1 ; 
    $val2 = $arr->val2 ; 
    $val3 = $arr->val3 ; 
    $val4 = $arr->val4 ; 
    $val5 = $arr->val5 ; 
     $out = array($val1,$val2,$val3,$val4,$val5); 
     fputcsv($fh, $out); 
     } 
+0

當您刪除錯誤抑制器時會發生什麼? –

+0

對不起,我不明白錯誤抑制器 – phpgeek

+0

我沒有試過,但這不是問題。我正在獲取應該寫入jquery響應文件的數據。 – phpgeek

回答

0

聽起來就像你想寫的CSV文件的內容在php中將'Content-Type'設置爲'text/plain'後,回到瀏覽器。根據Web瀏覽器的配置方式,它將提示用戶保存/打開文件。

<?php 
    $content="name,age,height,weight,gender"; 
    $file="persons.csv"; 

    header("Content-Type: text/plain"); 
    header("Content-disposition: attachment; filename=$file"); 
    header("Content-Transfer-Encoding: binary"); 
    header("Pragma: no-cache"); 
    header("Expires: 0"); 

    echo "$content"; 
?>