использую на сайте библиотеку PHPExcel
по нажатию на кнопку формируется эксель файл и выдается на скачивание,
но если помещать функцию эту функцию в switch или if, то эксель файл формируется, сохраняется на сервере, но не выдается на скачивание.
если функция вне конструкций свитч или иф, то все отлично. Чудеса...
Как справить эту магию?
Код функции:
lists_session ('gotov', $_GET['gotov']);//записываем сессию
lists_session ('gotov_sel', $_GET['gotov_sel']);
$nodenid = $_SESSION['gotov'][0];
//---------------------------------формирование excel документа
require_once 'PHPExcel.php';
require_once 'PHPExcel/IOFactory.php';
if ($nodenid == 9) {
$objPHPExcel = PHPExcel_IOFactory::load("exceltemplate/ENVD.xls");
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('C4', $_SESSION['gotov'][1])
->setCellValue('C5', $_SESSION['gotov'][2])
->setCellValue('C6', $_SESSION['gotov'][3])
->setCellValue('C7', $_SESSION['gotov'][4])
->setCellValue('C8', $_SESSION['gotov_sel'][1])
->setCellValue('C9', $_SESSION['gotov'][5])
->setCellValue('C10', $_SESSION['gotov_sel'][2])
->setCellValue('C11', $_SESSION['gotov_sel'][3])
->setCellValue('C12', $_SESSION['gotov'][6])
->setCellValue('C13', $_SESSION['gotov'][7])
->setCellValue('C14', $_SESSION['gotov'][8])
->setCellValue('C15', $_SESSION['gotov_sel'][4])
->setCellValue('C16', $_SESSION['gotov'][9])
->setCellValue('C17', $_SESSION['gotov'][10])
->setCellValue('C18', $_SESSION['gotov'][11])
->setCellValue('C19', $_SESSION['gotov'][12])
->setCellValue('C20', $_SESSION['gotov'][13])
->setCellValue('C21', $_SESSION['gotov'][14])
->setCellValue('C22', $_SESSION['gotov'][15])
->setCellValue('C23', $_SESSION['gotov'][16]);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('exceltemplate/ENVD.xls');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="ENVD.xls"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
};
unset ($_SESSION['gotov']);
unset ($_SESSION['gotov_sel']);
}
Комментарии
Ладно, тогда кто знает как сделать чтобы по нажатию на кнопку вызывалась функция в зависимости от ноды на которой нажата кнопка?
Пробовал так, не работает.
$form['save'] = array(
'#type' => 'button',
'#value' => 'Сохранить',
'#attributes' => array(
'class' => 'save',
),
'#validate' => array('prof_nodeviewform_save_'.$node->nid),
);