Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use jQuery to send Excel data using AJAX

Tags:

jquery

ajax

excel

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();


then in JavaScript file:
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.