Экспорт данных в файл Excel, созданный XLSXWriter (часть 2)

Продолжение Excel не может открыть созданный файл автор: XLSXWriter

Таблица пользователей
введите здесь описание изображения

test.php

<?php
if(isset($_POST['submit2']) && ($_POST['submit2'] == 'Export'))
{
    //db connection  
    $name = $_POST['name'];
    $record = FindName($name);

    if(count($record) > 0)
    {
         [?]
    }
}
else
{ 
?>
    <form action="c.php" method="post">
        Name: <input type="text" name="name" />
        <input type="submit" name="submit2" value="Export" />
    </form> 
<?php   
}

function FindName($name)
{
    $query = "SELECT * 
              FROM user 
              WHERE Name like '".$name."%'";
    $result = mysqli_query($dbc, $query);

    $record = array();
    while($row = mysqli_fetch_array($result))
    {
        $record[] = $row;
    }
    return $record;
}
?>

скачать.php

<?php
include('./PHP_XLSXWriter-master/xlsxwriter.class.php');

ini_set('display_errors', 0);
ini_set('log_errors', 1); 
error_reporting(E_ALL & ~E_NOTICE);

$filename = "example.xlsx";
header('Content-disposition: attachment;   filename="'.XLSXWriter::sanitize_filename($filename).'"');
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate');
header('Pragma: public');

$header = array(
    'ID'=>'string',
    'Name'=>'string',
    'Age'=>'string',
    'Gender'=>'string',
);

for($i = 0; $i < count($record); $i++)
{
    $data[$i] = array($record[$i]['ID'],$record[$i]['Name'],$record[$i]['Age'],$record[$i]['Gender']);
}

$writer = new XLSXWriter();
$writer->writeSheet($data,'Sheet1',$header);
$writer->writeToStdOut();
?>

Допустим, я набираю Wong в текстовом поле и нажимаю кнопку «Экспорт».
После нажатия кнопки экспорта найдите имя, содержащее слово Wong, и экспортируйте данные в Excel.

Мой вопрос заключается в том, как передать переменную $record в файл download.php по порядку. экспортировать данные в файл excel на [?]? Кто-нибудь может мне помочь?


person KKL Michael    schedule 29.12.2015    source источник


Ответы (1)


Вместо вашего [?], require файла.

if(count($record) > 0)
{
     require "PATH_TO/download.php";
     exit; // <- IMPORTANT to add exit
           // to not have in download response html data from test.php
}

поскольку переменная $record уже определена ( $record = FindName($name); ), эту переменную можно использовать в download.php

person Armen    schedule 29.12.2015