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 une page


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 179
    Points : 83
    Points
    83
    Par défaut Actualiser une page
    Bonjour,
    J'ai une page qui crée une image dynamique selon le choix dans un combobox.
    Cette image ce crée dynamiquement et par conséquent elle a toujours le même nom même s'il n'est pas toujours la même.

    Le problème c'est que quand je change mon choix dans le selectbox (combobox), la navigateur affiche toujours la même image stocké, et c'est normale puisqu'elle a le même nom, et par conséquent je suis obliger d'actualiser la page par le bouton actualiser.

    Ce que je veux donc faire c'est programmer cette actualisation, mais je sais pas comment le faire.

    je sais le faire avec javascript, mais ce qu'il ma faut, c'est comment éviter la répetition de l'actualisation puisque le script d'actualisation va se lire a chaque rechargelent

    avez vous une idée ??

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 386
    Points : 275
    Points
    275
    Par défaut
    Pourquoi tu ne recharge pas la page au changement de selection dans ton combobox plutôt? Car vu que tu change l'image par rapport à la selection dans le combobox ça serait plus logique non? Ou alors j'ai rien compris

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 179
    Points : 83
    Points
    83
    Par défaut
    oui je sais que j'ai mal rpésenter mon probléme

    je peux pas l'actualiser au moment de changement de sélection, parceque je suis pas entrain de changer d'image, ce que je fait c'est créer une nouvelle image selon le parametre que je passe par le combobox

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 194
    Points : 216
    Points
    216
    Par défaut
    mais quand tu fais rafraichir sur ta page la nouvelle image s'affiche ou pas?

    si oui tu actualises la page au moment du changement de sélection et en gardant la sélection du combobox en mémoire... (avec le genre de variable qui te plaira...)

    sinon tu peux jeter un coup d'oeil du coté d'ajax (c pô le même forum et ça peut être pas évident vu ce que tu veux faire).... pour exécuter un script php en fonction d'une action sur le client (donc javascript)

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 179
    Points : 83
    Points
    83
    Par défaut
    oui je rafraichi la page la nouvelle image s'affiche.
    si oui tu actualises la page au moment du changement de sélection et en gardant la sélection du combobox en mémoire... (avec le genre de variable qui te plaira...)
    voila ce que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select name="name" onChange="window.location='page.php?filtre='+this.value+''; window.location.reload()">
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select name="name" onChange="window.location.relaod('page.php?filtre='+this.value+''); ">
    mais c toujours le même problème, peut parceque je suis null en javascript

    mais normalement ça devrais pas marcher, car le script de création de l'image viens aprés le changement de selection.

    donc il faut que l'actualisation viens aprés la création.
    j'ai également effacer l'image existance avant de créer la nouvelle image, mais le navigateur se garde toujours l'ancienne en memoire

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 194
    Points : 216
    Points
    216
    Par défaut
    mais c toujours le même problème, peut parceque je suis null en javascript
    je ne crois pas que ce soit cela spécialement

    mais normalement ça devrais pas marcher, car le script de création de l'image viens aprés le changement de selection.
    et il est exécuté quand et comment? (automatiquement, en cliquant sur un bouton) j'ai du mal à comprendre la différence...

    en passant il faut peut être que la valeur de ton select reste selectionnée quand tu recharges (je ne sais pas si c'est le cas.. sinon tu fais un test en affichant le select, si la valeur (si c'est bien ce que tu récupères) de l'option vaut $_GET["filtre"] tu affiches SELECTED

    j'ai également effacer l'image existance avant de créer la nouvelle image, mais le navigateur se garde toujours l'ancienne en memoire
    ça oui, c'est classique, souvent les navigateurs gardent en cache certaines de choses pour ne pas les rafficher à la visite suivante, donc oui la vieille reste en mémoire
    pour éviter ça tu changes les paramètres de ton navigateur (si l'application est destiné à d'autres ce n'est pas une solution) ou alors tu fais varier le nom des images


    surtout que question bête : si l'image porte toujours le même nom, si deux-trois (voire plus) utilisateurs vont sur la page au même moment, comment vont ils avoir leur image propre alors que le nom est le même pour chaque?

  7. #7
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 179
    Points : 83
    Points
    83
    Par défaut
    et il est exécuté quand et comment? (automatiquement, en cliquant sur un bouton)
    Automatiquement

    en passant il faut peut être que la valeur de ton select reste selectionnée quand tu recharges
    C'est bien la cas

    pour éviter ça tu changes les paramètres de ton navigateur (si l'application est destiné à d'autres ce n'est pas une solution) ou alors tu fais varier le nom des images
    L'application est destiner a d'autre personne, et même si je varie le nom des images ça ne va pas résoudre le problème parceque l'image est un graphe dynamique, donc elle change avec le temps.

    si l'image porte toujours le même nom, si deux-trois (voire plus) utilisateurs vont sur la page au même moment, comment vont ils avoir leur image propre alors que le nom est le même pour chaque?
    L'image ne dépend pas des utilisateurs, elle dépend surtout d'autres données qui provienne de la base de données. Mais c bien vu car j'aurais ce problème aprés. Merci

  8. #8
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    Ton problème vient du cache des navigateurs.
    Tu devrais plutôt insérer des entêtes http pour leur dire de ne PAS mettre l'image en cache :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Cache-Control: no-cache');
    (inserer cette ligne dans le script PHP qui génère l'image AVANT d'envoyer l'image elle-même)
    Ca sera beaucoup plus propre et beaucoup plus simple ...

  9. #9
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 179
    Points : 83
    Points
    83
    Par défaut
    Je croix que c'est exactement ce qu'il me faut, mais ça me donne l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: Cannot modify header information - headers already sent by(Chemin)
    J'ai également essaiyer avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="expires" content="0">
    sans résultat

    donc a mon avis je doit chercher une fonction javascript qui désactive le cache.
    Qu'en pensez vous ??

  10. #10
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    Je ne penses pas, non
    ton message d'erreur vient du fait que des données ont déjà été envoyées au moment ou tu appelles la fonction header
    Il faut donc que tu mettes cet appel AVANT (voir la FAQ PHP)

  11. #11
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 179
    Points : 83
    Points
    83
    Par défaut
    J'ai déja essaiyer cela, mais ça ne marche pas et je sais pas pourquoi
    Les chance de trouver une sollution commence a se réduire

  12. #12
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    je persiste : la solution que je t'ai donnée est la bonne, tu n'as qu'a placer cette ligne de code au bon endroit, c'est quand même pas le bout du monde !
    regarde bien le message d'erreur, il doit t'indiquer le fichier et la ligne où les données ont commencée à etre envoyées ... eh bien il faut mettre cette ligne de code AVANT ladite ligne dudit fichier

  13. #13
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 179
    Points : 83
    Points
    83
    Par défaut
    je persiste :
    ça fait plaisir

    J'ai placer la ligne que vous m'avez donner juste aprés l'erreur, et même avant(enfin je l'ai tester dans tous les endroits) mais ça ne ve toujours pas marcher, et sans donner aucun message d'erreur

  14. #14
    Membre averti Avatar de johweb
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 342
    Points : 367
    Points
    367
    Par défaut
    Euh... reload va recharger la même page, non ?
    Et si au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.location='page.php?filtre='+this.value+''; window.location.reload()
    tu faisais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    location.href='page.php?filtre='+this.value+'';
    Ca donnerait quoi ?

  15. #15
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 179
    Points : 83
    Points
    83
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    location.href='page.php?filtre='+this.value+'';
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    window.location='page.php?filtre='+this.value+'';
    sont pareilles et donc ils ont donner le même résultat .

    mon problème se situe au niveau de la memoire cache, alors je doit mettre un astuce qui va me permettre d'actualiser la page une seule fois, mais puisque le script d'actualisation sera a l'interieur de la page, alors l'actualisation sera répetitif et la page ne va jamais s'afficher.

    Une deuxieme alternative (qui est la meilleure biensur) consiste a désactiver le cache, chose qu'on a fait ensemble et qui na pas marcher alors que ça marche dans d'autre cas.

    Ce que j'ai fait temporairement c'est ajouter un bouton d'actualisation juste en dessous de l'image pour actualiser la page, ça marche mais c'est pas du tout pratique

  16. #16
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    t'as qu'a mettre un id automatique à ta balise <img>

    Tu génères cet id à chaque rafraichissement de la page, comme ca les navigateurs ne croient pas que c'est la meme image.

  17. #17
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 179
    Points : 83
    Points
    83
    Par défaut
    Et comment dois-je faire pour automatiser cet id
    je croix que j'ai pas bien compris
    merci bien

Discussions similaires

  1. 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
  2. Actualiser une page à la fermeture d'un pop-up
    Par JackBeauregard dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/10/2006, 14h52
  3. comment actualiser une page web automatiquement ?
    Par safadev dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/09/2006, 23h34
  4. [PHP-JS] Actualiser une page PHP
    Par tigzirt dans le forum Langage
    Réponses: 9
    Dernier message: 12/05/2006, 11h18
  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