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 html : Sélectionner tout - Visualiser dans une fenêtre à part <a href="javascript:;" onclick="exportData()"> EXPORTER </a>
Code JavaScript :
et enfin le code de la page _exportData.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 php : Sélectionner tout - Visualiser dans une fenêtre à part
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; ?>
Partager