Я пытаюсь передать переменную с одной страницы PHP на другую страницу PHP, что приведет к загрузке Excel. Тем не менее, я не могу понять, как передать переменную и по-прежнему триггер загрузки. Я понимаю, что на моей странице PHP, которая создает файл 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 не загружается. Мне удалось написать статические запросы MySql на странице excel.php, поэтому мне не нужно передавать никаких переменных. Тем не менее, теперь у меня есть необходимость создавать динамические загрузки Excel, но я не достаточно силен в php, чтобы выяснить мои варианты. С другой стороны, я использую Ajax и не использую «submit». Будет ли это проблемой?