首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将PHP变量传递给MySql查询以创建Excel文档下载

问如何将PHP变量传递给MySql查询以创建Excel文档下载
EN

Stack Overflow用户
提问于 2012-02-15 19:32:11
回答 1查看 762关注 0票数 0

我正在尝试将一个变量从一个PHP页面传递到另一个PHP页面,这将触发Excel下载。但是,我不知道如何在传递变量的同时仍然拥有下载触发器。我知道创建Excel文件的PHP页面不能传递任何变量,否则下载将不会触发。

例如,我想执行以下操作(非常简单的示例):

variable.php

代码语言:javascript
复制
<?php
$date = '2012-02-15';
echo '<input type="text" id="date" value="'.$date.'"/>';
echo '<span onclick="excelDownload()">Click</span>';
?>

passing.js

代码语言:javascript
复制
function excelDownload(str)
{
  Ajax... 
  var date = document.getElementById('date').value;
  var queryString = "?date=" + date;
  xmlhttp.open("GET", "excel.php" + queryString, true);
  Ajax....
}

excel.php

代码语言:javascript
复制
<?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;
?>

不幸的是,$_GETdate变量导致excel.php无法下载。我已经能够在excel.php页面中编写静态MySql查询,所以我不需要传递任何变量。然而,我现在需要创建动态的excel下载,但我在php方面还不够强大,无法确定我的选择。顺便说一下,我使用Ajax,没有使用“提交”。这会是个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2012-02-16 14:27:48

我发现了我的问题,并想分享我的发现来结束这个问题。基本上,我应该在我的问题中更详细。我的Ajax函数需要进行一些调整,以便传递变量并允许头文件触发下载。

我在Ajax函数中使用了以下内容:

代码语言:javascript
复制
Ajax...
{
  if (xmlhttp.readyState == 4)
  {
   //nothing to allow download to trigger
  }
}
var date = document.getElementById('date').value;
var queryString = "?date=" + date;
xmlhttp.open("GET", "excel.php" + queryString, true):
xmlhttp.send(null);

但是,我应该使用下面的代码:

代码语言:javascript
复制
Ajax...
{
  if (xmlhttp.readyState == 4)
  {
   window.location = "excel.php" + queryString;
  }
}
var date = document.getElementById('date').value;
var queryString = "?date=" + date;
xmlhttp.open("GET", "excel.php" + queryString, true):
xmlhttp.send(null);

虽然我认为我的问题与header()之前的输出有关,但真正的问题是传递变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9292546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档