php - 无法摆脱后续请求的下载文件对话框

标签 php mysql excel

我使用以下代码将 mysql 查询的结果下载到 Excel 文件。

function Button14Click($sender, $params)
{
  IF ($this->ReadTheDates($Date1,$Date2))
  {
    mysql_connect('myServer','user','password');
    mysql_select_db('myDatabase');
    $SQLstr2 = $this->GetMySQL();
    $result = mysql_query($SQLstr2);
    // filename for download
    $filename = "File " .$Date1.'  '.$Date2. ".xls";
    header("Content-Disposition: attachment; filename=\"$filename\"");
    $flag = false;
    while($row = mysql_fetch_assoc($result))
    {
      if(!$flag)
      { // display field/column names as first row
        echo implode("\t", array_keys($row)) . "\r\n";
        $flag = true;
      }
      array_walk($row, 'cleanData');
      echo implode("\t", array_values($row)) . "\r\n";
    }
    exit();
  }

将 header 设置为通过文件下载数据后,例如 header("content disp ...),此 header 将保持事件状态,直到我手动重新加载页面。如果我在以下命令中创建并运行新的查询未下载 我仍然收到包含我刚刚下载的文件的下载对话框!

如何将 header 重置或删除到如上所述使用命令 header (...)更改 header 之前的状态,并返回到“正常”执行?

我尝试过使用 header_remove() 以及多种从代码中重新加载页面的方法,但没有成功。

最佳答案

好吧,我通过将“Excel”导出移动到一个新窗口来解决我的问题,我用 $_SESSION 向量向该窗口传递了我的参数。请参阅下面的示例。 现在可以了。

function Button14Click($sender, $params)
{
  session_start();
  $_SESSION['datt1'] =       $this->JTDatePicker1->Date;
  $_SESSION['datt2'] =       $this->JTDatePicker2->Date;
  $_SESSION['PilotIdx'] =    $this->JTLookupComboBox1->getSelectedValue();
  $_SESSION['FlygplanIdx'] = $this->JTLookupComboBox4->getSelectedValue();
  $_SESSION['KlubbIdx'] =    $this->JTLookupComboBox2->getSelectedValue();
  ?>
    <script type="text/javascript">
      myWindow = window.open("ExcelDownloadForm.php");
    </script>
  <?php
}

关于php - 无法摆脱后续请求的下载文件对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28289931/

相关文章:

python - Django JOIN 消除所需的列

Mysql:在UPDATE查询的两个条件下切换int字段的值

excel - 插入行时修复公式

Java POI 导入时忽略导出到带有空行的 Excel

excel - 暂停 VBA 循环,直到重新计算工作表

php - 在数组中添加额外的值

php - 为什么使用suhosin?

php - Laravel 工厂和播种 : Static array of arrays

mysql - 是否建议在生产环境中使用 Kubernetes 运行集群数据库?

php - jQuery AJAX 多次提交到 PHP 脚本