2016-12-30 1 views
1

Нижеприведенный код успешно загружает результаты запроса pgsql в виде файла csv при отправке формы. Однако изменение вложения в inline создало загруженный php-файл со всеми данными. Моя конечная цель - открыть эти результаты в новом окне в виде таблицы. В качестве примечания, это вторая кнопка в форме с отдельной php-формой.Я хотел бы открыть запрос pgsql в новом окне, а не загружать его как csv

$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

Вы не можете открыть новые окна с помощью HTTP-заголовков или любого другого свойства результата, он должен быть частью запроса.

для получения нового окна использовать атрибут target в форме или ссылке, которая делает запрос к этой форме.

например <form target="_blank" ... или <a target="_BLANK" ...

но вы, вероятно, получите новую вкладку вместо нового окна.

Смежные вопросы