Affichage message après export csv

senateur17 Messages postés 59 Statut Membre -  
mpmp93 Messages postés 7217 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour ,j'utilise une fonction php dont le code est voici:

function exportExcel($where)
{

//TABLEAU CONTENANT LES CHAMPS DE LA REQUETE (CHAMPS A AFFICHER)
$champs = getFieldsTable("products_110127");
$taille = count($champs);
//REQUETE DE SELECTION DES DONNEES
$select="SELECT ";
for($i=0;$i<=($taille-1);$i++){
$select=$select.strtoupper($champs[$i]).",";
}
$select=substr($select,0,(strlen($select)-1));
$select = $select." FROM products_110127 ".$where;

//CONNECTION A LA BASE DE DONNEES
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);

//Premiere ligne ; nom des champs :
$xls_output = "";
for($i=0;$i<=($taille-1);$i++){
$xls_output=$xls_output.strtoupper($champs[$i]).";";
}
$xls_output .= "\n";
//Boucle sur les resultats
while($row = mysql_fetch_array($result))
{
for($i=0;$i<=($taille-1);$i++){
$xls_output .= $row[$i] . ";" ;
}
$xls_output .= "\n";
}

header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=export_" . date("d-m-Y").".csv");
/*flush(); // Envoie le buffer
readfile("export_" . date("d-m-Y").".csv"); // Envoie le fichier */
print $xls_output;
//fopen("export_" . date("d-m-Y").".csv", "a+");

exit;
}
Je voudrais afficher un message qui confirme que le "Téléchargement est fait" après le téléchargement .
Le téléchargement fonctionne bien ,le problème le message ne s'affiche pas

Pouvez-vous m'aider?
Merci d'avance
A voir également:

1 réponse

mpmp93 Messages postés 7217 Date d'inscription   Statut Membre Dernière intervention   1 341
 
Bonjour,

Ce n'est pas possible.

La fonction header envoie le flux vers Excell....

On ne peut pas reprendre le flux vers le navigateur.

Je note que vous envoyez le contenu csv depuis un fichier....

Or, juste avant, vous traitez les données depuis une base de données.

Il y a bien plus simple, faire directement un echo dans une boucle juste après vos header:

// suite d'en-têtes qui redirigent le flux vers Excell
header('Content-Type: application/excel; name="'.$name.'"');
header('Content-Transfer-Encoding: binary');
header('Content-Disposition: attachment; filename="'.$name.'"');

// $resultat récupère les données depuis notre base de données
$resultat = $Statistiques->getTraitementGlobalparAgent(false);

// boucle qui récupère et affiche les données ligne à ligne
foreach ($resultat AS $key => $row) {
echo utf8_decode(implode(';', $row)).";\n";
}
0