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

Langage PHP Discussion :

Actualiser la page après un téléchargement de fichier [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Par défaut Actualiser la page après un téléchargement de fichier
    Bonjour à tous !

    Je suis malheureux car je ne trouve pas de solutions à mon problème actuel ! Voilà pourquoi je me tourne vers vous ! Merci d'avance !

    Alors, voici mon problème :

    La partie de mon site qui pose problème est censé s'occuper de la facturation d'une société. Mes scripts génèrent tout d'abord des projets de facture (en .odt) puis l'utilisateur décide, si la facture est bonne, de la passer en état "Validée". Sur mon index.php de cette section du site, j'affiche deux tableaux. Un listant les projets de factures en cours et le deuxième listant les factures déjà validées.

    cf capture ci-dessous :


    Dans le tableau des factures en projet, il y a un bouton "Valider la facture". Ce bouton appelle un script PHP qui passe la facture en état "Validée" dans ma base de données MySQL et qui me créé le fichier ODT de ma facture et qui le propose en téléchargement à l'utilisateur via ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    header('Content-Type: application/x-zip') ;
    header('Content-Disposition: inline; filename='.$nom_societe.'_facture_'.$nouveau_numero_chronologique_facture.'.odt') ;
     
    echo $archive ; // archive créée précédemment représentant le fichier ODT (et oui, un fichier ODT n'est rien d'autre qu'une archive)
    Cela fonctionne à merveille ! Problème : quand l'utilisateur clique sur "Valider la facture" et télécharge le fichier, la page courante n'est pas actualisée donc la facture en question (dont l'état dans la base de données a changé) ne peut pas être affichée dans les "Dernières factures validées".

    Il faudrait donc que j'arrive à actualiser la page après avoir envoyé le header permettant de télécharger le fichier. Est-ce possible ?

    Merci pour votre aide ! Si vous avez des questions, n'hésitez pas !

    PS : L'affichage aperçu ci-dessus se fait via index.php et le traitement expliqué (validation + téléchargement) se fait via validation_facture.php (appelé après un clic sur "Valider la facture" dans index.php).

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Par défaut
    Help please...

    Je n'ai toujours pas trouvé de solutions..

    Si vous voulez plus de détails, faites moi signe.

  3. #3
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par EmperorJay512 Voir le message
    Help please...
    Je n'ai toujours pas trouvé de solutions..
    Si vous voulez plus de détails, faites moi signe.
    Bonjour,
    A voir ton image écran, on comprend que c'est un site assez "PRO"
    Je sais que la mode est de faire tout en un !!

    Mais moi je dis au contraire plus c'est PRO plus on se moque de faire un pas de plus si on obtient.
    1) plus de fiabilitée.
    2) plus de simplicitée et clarté

    Je crois comprendre que les visiteurs ne peuvent télécharger que du validé ?
    Alors passes par une PHP séparé qui traite les POST fait sa validation Mysql puis mets a jour des valeurs de session pour au retour retrouver toutes les bonnes valeurs ! et reroute vers ton tableau !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Par défaut
    Bonjour FoxLeRenard !

    Merci pour cette réponse, tu m'a remis dans le droit chemin !

    En effet, c'est plus simple comme cela ! Maintenant quand l'utilisateur clic sur "Valider la facture", le script PHP appelé s'occupe de mettre la facture en état "Validée" dans la base de données puis à la fin du script je met ce qui suit au lieu du téléchargement de fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header("Location: ../");
    exit();
    L'utilisateur est donc renvoyé sur la page que l'on voit en capture d'écran plus haut mais cette fois, elle a été rechargé donc la facture est passée dans le tableau des "Dernières factures validées" et de là on peut maintenant la télécharger...

    Bon ok, c'est vrai que ça entraîne un clic en plus pour l'utilisateur, mais comme tu l'as si bien dit c'est plus fiable et plus clair !

    Merci pour votre aide, bonne continuation à tous et à bientôt !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. actualiser une page apres un click sur un lien
    Par diengkals dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 30/05/2012, 18h11
  2. rafraichir une page après un téléchargement
    Par friedamichelle dans le forum JSF
    Réponses: 7
    Dernier message: 31/03/2011, 08h05
  3. Blocage de ma page après un envoi de fichier
    Par clem5-9 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 29/06/2010, 11h11
  4. Actualiser une page après validation form
    Par toffff dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/04/2007, 18h48
  5. Actualiser une page après un "header location"
    Par salva57 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 15
    Dernier message: 10/01/2006, 22h09

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