IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Revenir a une page html après header vers excel


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2015
    Messages : 41
    Par défaut Revenir a une page html après header vers excel
    Bonjour,
    j'affiche le résultat d'une requête mysql dans un fichier excel sur le poste utilisateur. de la façon suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    ...
    if(mysqli_num_rows($rsl)>0)
    { 
    header("Content-type: application/vnd.ms-excel");
    header("Content-Disposition: attachment; filename=fichier.xls");
    $tbl= " <table...<
    <tr  height='40px'>
    			<td></td>
    			<td bgcolor='#CCCCCC' align center>Client</td>
    			<td bgcolor='#CCCCCC' align center>Commande</td>
    ...
    </tr>";
    while ($data = mysqli_fetch_array($requete))
    {
    $tbl = $tbl . "<tr>";
    $tbl = $tbl . "<td>" . $data['nom_cde'] . "</td>";
    $tbl = $tbl . "<td>" . $data['num_cde'] . "</td>";
    ...
    $tbl = $tbl . "</tr>";
    }
    $tbl = $tbl . "</table>";
     print $tbl;
    Je voudrais revenir à la page qui a fait lancer la requête pour afficher que la requête s'est bien exécutée, or toutes le commandes que j'essaye après mon "print $tbl s'affichent (avec ou sans erreur suivant la commande) dans le fichier excel et la page qui a permis de lancer la requête reste dans sont état...
    J'avoue que je maitrise très mal les imbrications html/php
    Une idée SVP

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 665
    Par défaut
    Si j'ai bien compris, vous êtes sur la page avec un lien qui lance la génération de ce fichier. Et quelques secondes après que le téléchargement du fichier commence, vous souhaitez que la page avec le lien redirige vers une autre page ?
    Si c'est ça, vous aurez besoin de JavaScript.

  3. #3
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2015
    Messages : 41
    Par défaut
    Bonsoir Mathieu et merci pour cette réponse, j'ai tenté une commande "header;"location.. qui est refusée (header already sent..apparait dans le fichier excel) et j'ai tenté également une redirection en javascript sans résultat. Une fois que je suis "enfermé" dans le fichier excel, aucune commande n'est plus analysée...

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 665
    Par défaut
    j'ai essayé avec le code suivant (jQuery) et ça fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        $("a").click(function () {
     
     
            setTimeout(function () {
     
                window.location = "http://localhost";
     
            }, 1000); // attente de 1 000 ms
     
     
     
        });
    je crois que la seule chose à faire attention est la durée d'attente qui doit être plus grande que le temps de génération du fichier.

  5. #5
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2015
    Messages : 41
    Par défaut
    Merci Mathieu pour cette proposition, mais je ne vois pas ou je pourrais mettre ce script.
    sur la page qui génère cet excel, il n'y a aucun élément cliquable et sur la page qui appelle la page cette page générant l'excel, ce script entre en conflit avec un script javascript appelé par un click sur le bouton input du formulaire html qui lance la page générant l'excel...çà semble pourtant être une bonne solution, je vais continuer à y réfléchir.
    JD

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 665
    Par défaut
    si la génération du fichier est lancée par du code JavaScript, vous pouvez ajouter le code "setTimeout" après le lancement.

Discussions similaires

  1. Renvoi d'une page html apres validation formulaire
    Par morgan2b dans le forum ASP.NET
    Réponses: 0
    Dernier message: 01/02/2010, 19h13
  2. [MySQL] copier une page html après nettoyage dans une base mysql en php
    Par araoudiou dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/05/2007, 21h49
  3. Réponses: 4
    Dernier message: 06/04/2006, 10h07
  4. ajout d'un tableau dans une page html après un clic
    Par jehlg dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/02/2006, 17h37
  5. [FLASH MX] Lien d'une animation Flash vers une page html
    Par tinkye_winkye dans le forum Flash
    Réponses: 10
    Dernier message: 19/01/2005, 10h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo