Affichage message après export csv

Fermé
senateur17 Messages postés 58 Date d'inscription jeudi 2 octobre 2008 Statut Membre Dernière intervention 31 mai 2011 - 14 avril 2011 à 08:33
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 14 avril 2011 à 10:20
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 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
14 avril 2011 à 10:20
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