PHP检测一个打开/下载对话框

不幸的是,这个问题可能会被closures,但我希望有人回答。

我有一些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; ?> 

这是这样的forms:

 <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的angular度来解释它是如何实现的。 我提交表单,暂时打开一个新页面,出现一个下载框,我打开Excel中,然后我被发回到表单页面(但Excel也打开)

PHP如何知道我已经下载并返回到表单页面?

它不。 您的浏览器从来没有离开表单页面,因为该文件被下载,而不是显示在浏览器中。

PHP不知道 – 它所做的只是提供一个excel文件。 在表单的onsubmit方法中发生的JavaScript中发生了一些巧妙的事情