PHP: Экспорт таблицы HTML в Excel включает в себя всю форму? - PullRequest
1 голос
/ 25 мая 2011

У меня есть php-файл, который показывает html-форму, и при отправке создает html-таблицу из данных mysql и экспортирует ее в excel.

Моя проблема в том, что вся HTML-форма выводится в файл Excel вместе с данными таблицы.

Мой код:

<html form..>

<?php
if(isset($_POST['submit'])){
//get sql data and create html table in variable (ie $data="<table>..")

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$file");
echo "$data";}
?>

я хочу только "$данные ", чтобы показать в моих .xls, но вместо этого отображается все <form>, кнопки отправки и все.

спасибо.

Ответы [ 3 ]

1 голос
/ 25 мая 2011

Перед отправкой заголовка браузеру не следует отправлять выходные данные.

Определите свою HTML-форму ниже процесса отправки.

0 голосов
/ 25 мая 2011

Если вы выполняете свою логику на уровне представления (условные ifs в вашем html-файле), то, возможно, будет достаточно поместить код вашей формы в

if(!isset($_POST['submit'])){

Наилучшим способом будет перенаправление экспортадействие для другого сценария:)

0 голосов
/ 25 мая 2011

Все данные, записанные в выходной буфер, будут включены.Вызовы заголовка желательно делать перед любым выводом.Но в случае организации вашего файла вы можете сделать:

<html form..>

    <?php if(isset($_POST['submit'])){ 
     //get sql data and create html table in variable (ie $data="<table>..")
     // Clean the output buffer so it won't mess up your excel export 
     ob_clean();

    header("Content-type: application/vnd.ms-excel"); 
    header("Content-Disposition: attachment; filename=$file"); 
    echo $data; // no need for quotes here since you only echo your variable
    }
    ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...