2010-03-04 70 views
0

我有一個腳本,用於將mysql查詢的結果導出爲csv文件。問題是我使用jquery來訪問腳本。我需要知道如何使用jquery返回數據(已經以csv格式)。換句話說,爲了讓自己清楚,因爲我的英語有點差,當用戶按下HTML文件中的按鈕時,發送請求被髮送到以csv格式返回數據的php文件。我想用jQuery獲取這些數據並將.csv文件提供給用戶。jquery php和csv導出

PHP文件:

<?php 
    session_start(); 
    header ("Content-type: application/csv\nContent-Disposition: \"inline; filename=my.csv\""); 
    include("config.php"); 
    $query = $_SESSION['sqlQuery']; 

    $result = mysql_query($query) or die("Query failed : " . mysql_error()); 
    echo "ID,STATUS,CATEGORY,TITLE,DATE,URL\r\n"; //header 
    while($row = mysql_fetch_row($result)) { 
     echo "$row[0],$row[4],$row[3],$row[1],$row[2]\r\n"; //data 
    } 
?> 

我需要的東西在HTML這樣的:

$("#exportToCsv").click(function(){ 
    $.post("export.php",function(data){ 
     here the code for exporting much like downloading a file 
    }); 
}); 

回答

1

您可以鏈接到文件(no ajax,沒有$.post),頭文件henchman說。它會下載文件。 Ajax是要求javascript來獲取文件,而不是下載。

0

對於此任務的一部分,你需要幫助嗎?

下面的命令打印一個文件到用戶:

http://php.net/manual/en/function.file-get-contents.php

如:

echo file_get_contents("myfile.csv"); 

編輯

嘗試下面的標題添加到您的PHP頁面,這將被稱爲您的阿賈克斯呼籲:

header("Content-Type: text/csv"); 
header("Content-Disposition: attachment; filename=\"export.csv\""); 
+0

<?php session_start(); header(「Content-type:application/csv \ nContent-Disposition:\」inline; filename = yourfilename.csv \「」); include(「config.php」); $ query = $ _SESSION ['sqlQuery']; $ result = mysql_query($ query)or die(「Query failed:」。mysql_error()); echo「ID,STATUS,CATEGORY,TITLE,DATE,URL \ r \ n」; // header echo $ row [0],$ row [4],$ row [3],$ row [1],$ row [2] \ r($ row = mysql_fetch_row($ result)){ \ n「; // data } ?> 這是php。所以我需要在HTML文件中的一些東西,如: $ .post(「exportCsv.php」,函數(數據){ 東西在這裏導出爲csv文件(如下載.csv文件) }); – user253530 2010-03-04 20:40:48