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

jQuery Discussion :

Perte de paramètres lors d'un refresh


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Août 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Août 2018
    Messages : 40
    Par défaut Perte de paramètres lors d'un refresh
    bonjour,
    Connaissant bien plus php , que javascript/ajax je rencontre un problème lors du passage de paramètres lors du refresh d'une page avec paramètre.

    j'ai besoin de rafraichir une page php toute les 2 secondes en évitant le clignotement de refresh

    sans utiliser mes refresh basé sur php du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Refresh:30; url=view.php?galgal=$galgal&pseudo=$pseudo&nbmaximag=$nbmaximag&site=$site");
    j ai donc utilisé : ( je me suis basé sur un exemple trouvé sur le web)

    page principale :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <header>
    <script src="./common/jquery.js"></script>
    <script src="./common/ordon.js"></script>
    </header>
    ...
    <body onload='refresh_div();'>
    ...
    <td valign="top"><div id="ordon" width="800" height="700" ></div></td>



    ficher de fonction javascript :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    function refresh_div()
     
    {
     
    var xhr_object = null;
     
    xhr_object = new XMLHttpRequest();
     
    var method = 'GET';
     
    var filename = './common/ordon.php';
     
    xhr_object.open(method, filename, true);
     
    xhr_object.onreadystatechange = function()
     
    {
     
    if(xhr_object.readyState == 4)
     
    {
     
    var tmp = xhr_object.responseText;
     
    document.getElementById('ordon').innerHTML = tmp;
     
    }
     
    }
     
    xhr_object.send(null);
     
    setTimeout('refresh_div()', 2000);
     
    }

    Tel quel ca marche , ma page se rafraichi bien toute les 2 secondes sans clignotement.
    Mais mon problème est que je doit passer des paramètres a ma page nommé "ordon.php" .
    Donc il ne faut pas que celle ci soit défini dans la fonction, mais passé en paramètre

    J'ai donc modifié ma page principale pour passer l'url a la fonction tel que suis :


    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload='refresh_div("./common/ordon.php?param=<?php echo $param ; ?>");'>

    et dans mon fichier de script j ai changé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function refresh_div(myurl)
     
    ...
     
    var filename = myurl;
    ...

    mon soucis est qu au permier chargement de la page principale ca marche mais qu'il perd la valeur "myurl" après le premier refresh

    dans la console de chrome j ai une erreur 404:
    "GET http://127.0.0.1/mysite/undefined"

    alors que je devrais avoir quelque chose du type
    "GET http://127.0.0.1/mysite/common/ordon.php?param=xxx"




    j'aimerais savoir comment faire pour repasser mes paramètres en GET lors du refresh

    EDIT :
    je suppose qu'il faut faire des modifs du coté de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xhr_object.send(null);
     
    setTimeout('refresh_div()', 2000);

    j ai essayé différentes syntaxes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    setTimeout('refresh_div(myurl)', 2000);
    setTimeout('refresh_div('myurl')', 2000);
    setTimeout('refresh_div('.myurl.')', 2000);
    mais je n'arrive pas a trouver la bonne syntaxe

    merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Ton explication est un peu confuse ...
    Tu veux recharger l'intégralité de la page ou juste une partie de la page ?

    recharger une page toutes les deux secondes ???
    il faut déja espérer que ta page se charge en moins de deux secondes
    Même pour un chat on compte su un minimum de 3 secondes...

    Si c'est une partie de page il faut en effet passer par un ajax mais là encore toutes les deux secondes c'st un peu court, il vaudrait mieux pour le coup regarder du coté des sockets?

    Si c'est l'intégralité de la page il faudra utiliser self.location.href, mais encore une fois 2 secondes c'est vraiment short ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Août 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Août 2018
    Messages : 40
    Par défaut
    hello , merci pour ta réponse , mais on dérive du sujet , le timeout n'est pas mon problème , la page web est mono utilisateur , (intranet).

    pour présiser j ai une page php principale avec des menus et un "encart" :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <td valign="top"><div id="ordon" width="800" height="700" ></div>
    )

    au chargement de la page un script .js est lancé :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
     <body onload='refresh_div();'>
    ce script .js affiche une page php fille toute les XXX secondes
    quand je fixe la directory dans la page php fille et que le .js l'appelle sans aucun paramètre ca marche avec l'exemple décrit.


    mais j ai besoin de pourvoir changer la directory a lister a partir de la page mere. et donc de passer des paramètres a la fonction dans le ficher .js

    j'ai modifié mon fichier .js comme j ai décrit , mais au premier refresh il perd le paramètre.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Pourquoi fais-tu un refresh de la page ?
    Il est normal que tu perdes les paramètres car javascript ne survit pas à un rechargement de page.

    Selon moi il faut rester sur la même page et recharger des parties de page au moyen de jquery avec .load() et éventuellement faire d'autres mises à jour sur la page au moyen de requêtes ajax si tu as besoin de récupérer des infos coté serveur

    J'avoue ne pas te suivre complètement que tu parle de page fille ??? tu as des iframe ? un frameset ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    C'est pourtant simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function refresh_div()
    {
    ...
      var filename = './common/ordon.php?param=<?php echo $param ; ?>';
    @SpaceFrog
    De ce que je vois, ce n'est que le contenu du div "ordon" qui est rechargé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          var tmp = xhr_object.responseText;
          document.getElementById('ordon').innerHTML = tmp;

  6. #6
    Membre confirmé
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Août 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Août 2018
    Messages : 40
    Par défaut
    oui effectivement :-(

    j ai virer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="./common/ordon.js"></script>
    et que j'ai remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script>
    function refresh_div()..
    </script>
    directement dans ma page php .. ce qui me pert de passer l'url que je veut ..
    c etais simple , mais étant plus habitué au script bash qu'au javascript , je pense que sans aide , j aurrais mis quelques heures/jours avant de touver ;-)

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

Discussions similaires

  1. [SP-2007] pertes des parametres lors d'une creation de site avec modele
    Par padej450 dans le forum SharePoint
    Réponses: 1
    Dernier message: 04/06/2009, 14h49
  2. Réponses: 1
    Dernier message: 16/01/2007, 09h48
  3. [GD] probleme de perte de qualité lors de miniature de photos?
    Par brasco06 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 23/05/2005, 16h03
  4. Réponses: 2
    Dernier message: 06/12/2004, 14h43
  5. [langage] Passage de parametre lors de l execution
    Par WetzlarMan dans le forum Langage
    Réponses: 4
    Dernier message: 16/03/2004, 13h28

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