AJAX is... the wrong choice. Redirect the user to a server resource that will send the data down with the proper MIME type, and let the browser figure out what to do with it.
in HTML I have a Form with serial inputs elements and a button that calls a JavaScript function onclick="exportExcel();
function exportExcel(){
var inputs = $("#myForm").serialize();
var url = '/ajaxresponse.php?select=exportExcel&'+inputs;
location.href = url;
}
and finally a pivot file who response to something
PHP code:
case 'exportExcel':{
ob_end_clean();
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment;
filename=exportFile.xls");
echo $html->List($bd->ResultSet($_GET));
}
$html is an object who handle html, and $bd is an object that returns data from Database send your own html table or whatever you want.
Since it uses JavaScript, AJAX is bound by JavaScript's designed limitations, which includes interacting with other processes on the client's machine. In this case, it's a good thing; you wouldn't want a site to be able to automatically load an Excel document with a malicious macro in it.
If you want to display the data in the browser, you can use AJAX; otherwise, you'll want to just give a link to an Excel document and let the browser's regular download handling capabilities figure out what to do.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With