我試圖從一個PHP頁面傳遞一個變量到另一個PHP頁面,這將觸發一個Excel下載。但是,我無法弄清楚如何傳遞變量並仍然有下載觸發器。我明白我創建Excel文件的PHP頁面不能有任何變量傳遞給它,否則下載不會觸發。如何通過PHP變量到MySQL查詢創建一個Excel文檔下載
例如,我想做到以下幾點(很簡單的例子):
variable.php
<?php
$date = '2012-02-15';
echo '<input type="text" id="date" value="'.$date.'"/>';
echo '<span onclick="excelDownload()">Click</span>';
?>
passing.js
function excelDownload(str)
{
Ajax...
var date = document.getElementById('date').value;
var queryString = "?date=" + date;
xmlhttp.open("GET", "excel.php" + queryString, true);
Ajax....
}
excel.php
<?php
Connect to database...
$date = $_GET['date'];
$file = "Names: ";
$result = mysql_query("SELECT * FROM Something WHERE date_field = '$date'");
$data = mysql_fetch_array($result);
$file.= $data['names']." ";
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=names.xls");
header("Pragma: no-cache");
header("Expires: 0");
print $file;
?>
不幸有趣的是,$ _GET [date']變量導致excel.php不能下載。我已經能夠在excel.php頁面中編寫靜態的MySql查詢了,所以我不必傳遞任何變量。然而,我現在需要創建動態的excel下載,但我不夠強大的PHP來找出我的選擇。在附註中,我使用Ajax,不使用「提交」。這會是一個問題嗎?
_I明白,它創建Excel文件我的PHP頁面不能傳遞給它的任何變量,或者下載不會trigger._爲什麼?另外,你是否得到任何錯誤或什麼? – 2012-02-15 11:40:49
我沒有收到任何錯誤,而是在我觸發onclick事件後會出現一個新窗口,並且不會執行下載提示。我在某處讀到帶有excel頭文件的php頁面不能有任何數據進入它,以便下載觸發。如果我將'2012-02-15'寫入mysql查詢,而不是將變量傳遞給它,則會觸發下載提示。 – user175328 2012-02-15 12:00:27
重申我的問題:如何傳遞一個變量來運行MySql查詢,然後用MySql查詢結果觸發下載一個Excel文件?我的問題是,你不能在PHP頭之前輸出任何東西。 – user175328 2012-02-16 05:33:27