2015-02-03 3 views
0

Я использую следующий код для загрузки результата из запроса mysql в файл excel.Невозможно избавиться от диалогового окна файла загрузки при последующих запросах

function Button14Click($sender, $params) 
{ 
    IF ($this->ReadTheDates($Date1,$Date2)) 
    { 
    mysql_connect('myServer','user','password'); 
    mysql_select_db('myDatabase'); 
    $SQLstr2 = $this->GetMySQL(); 
    $result = mysql_query($SQLstr2); 
    // filename for download 
    $filename = "File " .$Date1.' '.$Date2. ".xls"; 
    header("Content-Disposition: attachment; filename=\"$filename\""); 
    $flag = false; 
    while($row = mysql_fetch_assoc($result)) 
    { 
     if(!$flag) 
     { // display field/column names as first row 
     echo implode("\t", array_keys($row)) . "\r\n"; 
     $flag = true; 
     } 
     array_walk($row, 'cleanData'); 
     echo implode("\t", array_values($row)) . "\r\n"; 
    } 
    exit(); 
    } 

После установки заголовка для загрузки данных через файл, например, заголовок ("DISP содержания ...) этот заголовок остается активным, пока я вручную перезагрузить страницу. Если я в следующей команде, например, создать и запускать новый запрос не для загрузки. Я все еще получаю диалог загрузки с файлом, который я только что загрузил!

Как сбросить или удалить заголовок до состояния, которое у него было до того, как я изменил его с помощью заголовка команды (. ..), как описано выше, и вернуться к «нормальному» выполнению так сказать?

Я пробовал с header_remove() и несколькими способами перезагрузить страницу из кода без успеха.

+0

um what? вы отправляете заголовок, чтобы браузер ожидал загрузки файла - так что вы хотите сделать> –

+0

также его не файл excel, именование файла * .xls меняет формат данных. его просто табуляция ограничена, может также создать csv - гораздо лучше совместимость –

+0

Я подредактировал свой вопрос и попытался быть более конкретным по моей проблеме и вопросу. Да, я знаю, что это не станет excelfile, только назвав его .xls, это способ заставить Windows открыть его с помощью Excel без каких-либо вопросов пользователю. – Dag

ответ

0

Хорошо, я решил проблему, переместив «Excel» -export в новое окно, в которое передал мои параметры с помощью вектора $ _SESSION. См. Пример ниже. Теперь это работает.

function Button14Click($sender, $params) 
{ 
    session_start(); 
    $_SESSION['datt1'] =  $this->JTDatePicker1->Date; 
    $_SESSION['datt2'] =  $this->JTDatePicker2->Date; 
    $_SESSION['PilotIdx'] = $this->JTLookupComboBox1->getSelectedValue(); 
    $_SESSION['FlygplanIdx'] = $this->JTLookupComboBox4->getSelectedValue(); 
    $_SESSION['KlubbIdx'] = $this->JTLookupComboBox2->getSelectedValue(); 
    ?> 
    <script type="text/javascript"> 
     myWindow = window.open("ExcelDownloadForm.php"); 
    </script> 
    <?php 
} 
Смежные вопросы