Je souhaite exporter des données dans un fichier Excel via Ajax.
Les données à exporter sont dans un gros tableau d'objets javascript ( ma variable bigTabDataToExport) .
Le problème :le navigateur ne me propose pas d'enregistrer le fichier Excel via mon Ajax lorsque l'appel Ajax lance la page "exportData.php" (pourtant il exécute bien la page...).
Et si je lance directement ma page "exportData.php", il me demande tout de suite d'enregistrer le fichier excel sur mon disque... (Pour l'exemple, j'ai mis des données en dures mais le but étant de "remplir" le fichier excel avec les data de ma variable javascript)
Donc comment se fait-il qu'en lançant mon Ajax, le navigateur ne me propose pas le téléchargement du fichier ? Il y a un truc qui m'échappe.
Code HTML :
Code:<a href="javascript:;" onclick="exportData()"> EXPORTER </a>
Code JavaScript :
et enfin le code de la page _exportData.phpCode:
1
2
3
4
5
6
7
8
9
10
11
12 function exportData() { $.ajax({ type: "post", url: "_exportData.php", data: { 'task': 'Export', 'Data': bigTabDataToExport } }).success(function(data, text, jqxhr) { }).fail(function(jqXHR, textStatus) { }); }
Code:
1
2
3
4
5
6
7
8
9
10 <?php header("Content-type: application/vnd.ms-excel"); header("Content-disposition: attachment; filename=export.xls"); $test = '<table border="1" bordercolor="#ffffff"> <tr bgcolor="#ffd4ba"><td>COL 1</td><td>COL 2</td><td>COL 3</td><td>COL 4</td></tr> <tr bgcolor="#ffffff"><td>COL 1a</td><td>COL 2a</td><td>COL 3a</td><td>COL 4a</td></tr> </table>'; echo $test; ?>