Неизвестная проблема

Главные вкладки

Аватар пользователя m.rad m.rad 23 мая 2011 в 11:10

использую на сайте библиотеку PHPExcel

по нажатию на кнопку формируется эксель файл и выдается на скачивание,
но если помещать функцию эту функцию в switch или if, то эксель файл формируется, сохраняется на сервере, но не выдается на скачивание.
если функция вне конструкций свитч или иф, то все отлично. Чудеса...

Как справить эту магию?

Код функции:

function prof_nodeviewform_save () {   // ---------------Событие на сохранить

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']);
}

Комментарии

Аватар пользователя m.rad m.rad 23 мая 2011 в 13:20

Ладно, тогда кто знает как сделать чтобы по нажатию на кнопку вызывалась функция в зависимости от ноды на которой нажата кнопка?

Пробовал так, не работает.

 
$form['save'] = array(
    '#type' => 'button',
    '#value' => 'Сохранить',
    '#attributes' => array(
      'class' => 'save',
    ),
    '#validate' => array('prof_nodeviewform_save_'.$node->nid),
  );