Rafraichissement fenetre

Résolu
miklb Messages postés 48 Statut Membre -  
miklb Messages postés 48 Statut Membre -
Je réalise un site en PHP.
J'ai trois frames : une horizontale en haut (elle contient l'entete et les menus) et deux verticales dessous (name=g_forum pour celle de gauche et name=d_forum pour celle de droite).
Dans ce site j'ai donc un forum.
A gauche, la liste des thèmes avec le nombre de messages par thème et à droite le contenu des messages et les liens pour répondre ou écrire de nouveaux messages.

Un click à gauche sur un thème met à jour ma page de droite (d_forum).
Quand je créé un message, le formulaire s'inscrit dans la d_forum. Si j'annule, je réaffiche ma page de droite (je reste dans la meme frame donc pas de problème).

Voici ma question :
Quand je valide le formulaire, je mets à jour ma BDD et je réaffiche ma page permettant de visualiser mes messages. Je fais un
Header (‘Location : voir_forum.php’) ;
Mais il me faudrait aussi rafraichir la frame de gauche pour indiquer qu’un nouveau message existe. Dans le header, peut on indiquer sur quelle frame travailler ? Peut on ensuite enchainer pluisieurs header ?

Merci de votre aide.

2 réponses

  1. Erdnax Messages postés 2279 Statut Contributeur 497
     
    Salut,

    J'ai peut-être une solution, mais je ne sais pas si elle va marcher et je n'ai pas de quoi la tester... Donc fais-le et dis moi si ça marche ;)
    echo "<script type=\"text/javascript\">parent.g_forum.location.reload()</script>";

    Ca fonctionne ?

    @+
    0
    1. miklb Messages postés 48 Statut Membre 8
       
      Salut,

      je n'ai pas le script au bureau, mais je teste ça ce soir et te tiens au courant ...

      Merci.
      0
    2. miklb Messages postés 48 Statut Membre 8
       
      Bonjour,

      Avec un peu de retard mais je tenais à répondre.

      J'ai donc réussi avec ta ligne en l'adaptant :

      Voici les adaptations:

      Le formulaire d'insertion d'un message (lancé dans la frame de droite) comprend vers la fin :

      // on redirige vers la page de lecture du sujet en cours (toujours frame de droite)
      // on indique refreh=1 pour rafraichir aussi la frame de gauche
      header('Location: voir_forum.php?id_theme='.$_GET['id_theme'].'&refresh=1');


      dans le script Voir_forum.php (qui s'affiche dans la frame de droite), j'ajoute en début la ligne suivante :


      if (isset($_GET['refresh']))
      {
      if ($_GET['refresh']==1)
      {
      echo "<SCRIPT type=\"text/javascript\">parent.forum_g.location.reload()</SCRIPT>";
      }
      }

      et la suite concerne le reste du script de la frame de droite.

      En fait je ne pouvais pas tout mettre dans mon fichier insert_message.php car cela me faisait écrire :
      echo "<script .....
      puis
      header ....

      Merci de la solution
      tchao ...
      0
  2. Utilisateur anonyme
     
    Dans ta page qui permet d'afficher tes messages, appelle une fonction javascript quand ta page est chargée:
    .
    .
    .
    <script>
    
    function updateOtherFrame(){
    window.top.frames[indexDeTaFrame].document.location.href="urlPourUpdaterTaFrame";
    }
    </script> 
    .
    .
    .
     <body onload="updateOtherFrame();">
    .
    .
    .
    


    Hope it helps...

    ;-)
    HackTrack
    0