PHP обнаруживает диалоговое окно Open / Download - PullRequest
0 голосов
/ 26 января 2011

к сожалению, этот вопрос может быть закрыт, но я надеюсь, что некоторые люди ответят на него.

У меня есть некоторый PHP-код, который открывает Excel с некоторыми HTML-данными в нем. Это PHP:

<?php
$data = $_REQUEST['datatodisplay'];
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=Data.xls");
header("Pragma: no-cache");
header("Expires: 0");

echo $data;

?>

А это форма:

<form class='noPrint' action='demo/saveToExcel.php' method='post' target='_blank'
onsubmit="$('#datatodisplay').val( $('<div>').append( $('#dataTable').eq(0).clone() ).html() )">
<input id='excel' type='image' src='img/file.png'>
<input type='hidden' id='datatodisplay' name='datatodisplay' />
</form>

Теперь этот код прекрасно работает, но кто-то может объяснить с точки зрения PHP, как он это делает, т.е. Я отправляю форму, она временно открывает новую страницу, появляется окно загрузки, я нажимаю кнопку Открыть в Excel, а затем меня отправляют обратно на страницу формы (но в Excel также открывается)

Как PHP узнает, что я загрузил файл и вернулся на страницу формы?

Ответы [ 2 ]

1 голос
/ 26 января 2011

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

1 голос
/ 26 января 2011

PHP не знает - все, что он делает, это обслуживает файл Excel.Умный бит происходит в JavaScript, что происходит в методе onsubmit вида

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...