以下代码成功将pgsql查询的结果作为csv文件下载到表单提交上。但是,更改内联的附件会生成包含所有数据的下载的php文件。我的最终目标是在一个新窗口中打开这些结果作为表格。注意,这是表单中的第二个按钮,带有单独的php格式。
$result = pg_query_params($conn, $sql, $params);
if (!$result) {
echo "Query failed.\n";
exit;
}
$num_fields = pg_num_fields($result);
$headers = array();
for ($i = 0; $i < $num_fields; $i++)
{
$headers[] = pg_field_name($result , $i);
}
$fp = fopen('php://output', 'w');
if ($fp && $result)
{
header('Content-Type: text/csv');
header('Content-Disposition: attachment;');
header('Pragma: no-cache');
header('Expires: 0');
fputcsv($fp, $headers);
while ($row = pg_fetch_row($result))
{
fputcsv($fp, array_values($row));
}
die;
}
exit('It works');
}
感谢您的帮助。
答案 0 :(得分:0)
你不能通过HTTP标头或任何其他结果属性打开新窗口,它必须是请求的一部分。
要获取新窗口,请使用表单或链接上的target
属性来发送此表单。
例如<form target="_blank"
...或<a target="_BLANK"
...
但你可能会得到一个新选项卡而不是新窗口。