我想在新窗口中打开pgsql查询,而不是下载为csv

时间:2016-12-30 18:41:01

标签: php html5 postgresql

以下代码成功将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');
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你不能通过HTTP标头或任何其他结果属性打开新窗口,它必须是请求的一部分。

要获取新窗口,请使用表单或链接上的target属性来发送此表单。

例如<form target="_blank" ...或<a target="_BLANK" ...

但你可能会得到一个新选项卡而不是新窗口。