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

JavaScript Discussion :

[JS][Frame] Actualisation d'une frame sur un onclick()


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Ministar
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Par défaut [JS][Frame] Actualisation d'une frame sur un onclick()
    Bonjour!

    Me revoici avec le javascript et un problème qui ne doit pas être trop compliqué.

    J'ai une page chat.php qui contient la frame contenu_chat.php.

    Sur la page chat.php j'ai un formulaire qui me permet d'envoyer un message dans la base de donnée en ajax, pour ça pas de problème.

    J'aimerais que lorsque l'utilisateur envoi un message la frame reçoive de nouveau la page contenu_chat.php, comment faire cela en javascript?

    Merci de votre aide!

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par Ministar Voir le message
    J'aimerais que lorsque l'utilisateur envoi un message la frame reçoive de nouveau la page contenu_chat.php, comment faire cela en javascript?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.frames['name_de_la_frame'].location.reload();


    A+

  3. #3
    Membre confirmé Avatar de Ministar
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Par défaut
    J'ai vu plein de code comme celui ci qui devraient fonctionner mais ce n'est pas le cas ();

    Il y a 4 fichiers :
    script.js qui contient mon script d'envois du message :
    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
    function envoyermessage()
    {
      //Création de l'objet xhr-----------------------------------------------------
      var xhr= null;
      if(window.XMLHttpRequest) // Firefox
      {  xhr= new XMLHttpRequest(); }
      else if(window.ActiveXObject) // Internet Explorer
      {  xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
      else
      { // XMLHttpRequest non supporté par le navigateur
       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
       return;
      }
      //----------------------------------------------------------------------------
    
      //Ouvre la connexion au serveur en précisant le type de données :
      xhr.open('POST','./script/envoyermessagechat.php',true);
      //On associe à une varible un contenue, ici pour le contenu de la page :
      xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    
      // On regarde les changement d'état de l'objet xhr
      xhr.onreadystatechange = function attente(){  // l'état est à 4, requête reçu !
                                                    if(xhr.readyState == 4)
                                                   {  }
                                                 }
      // Envoi la requete xhr au serveur :
      xhr.send(donnees_formatees());
    
      //remise à 0 de l'état du formulaire
      document.getElementById("idmsg").value='';
      document.getElementById("idmsg").focus();
      document.frames['frame_chat'].location.reload();
      return;
    }
    Ensuite mon fichier chat.php qui contient la frame et le bouton d'envoi pour le message et l'acualisation théorique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ...
    script type="text/javascript" src="./script/script.js"></script>
    <!-- Mise en place de la frame -->
    <iframe src="./contenu_chat.php" name="frame_chat" height="400" width="670" align="center" frameborder="0"></iframe>
    ...
    <form method='POST' action='javascript:envoyermessage();' name='formulaireenvoi'>
    <input name='namemsg' id='idmsg' type='text' size=75>
    <input name='namepseudo' id='idpseudo' type='hidden' readonly>
    <input type='button' value='envoyer' onclick='javascript:envoyermessage();'>
    </form>
    ...
    et donc mon fichier envoyermessagechat.php qui me permet d'envoyer un message et qui ne contient que du php et contenu_chat.php qui contient la liste des messages.

    Le problème viendrais du fichier js qui est indépendant des autres?

    Edit : si dans mon fichier chat.php pour le formulaire d'envoi je fais onclick='javascript:envoyermessage();document.frames['frame_chat'].location.reload();' plus rien ne se passe...

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Ministar Voir le message
    Le problème viendrais du fichier js qui est indépendant des autres?
    Non (pas du fait qu'il soit indépendant), mais si tu as une erreur dans un des fichiers, le reste du JS ne fonctionne plus ...
    Pas de message d'erreur ?
    Sont ils activés ?

    A+

  5. #5
    Membre confirmé Avatar de Ministar
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Par défaut
    J'ai testé ca dans ma fonction envoyer message :

    document.frames['frame_chat'].location.reload();
    document.getElementById("idmsg").value='test js ok';
    document.getElementById("idmsg").focus();

    Et mon formulaire ne contient pas le message test js ok, c'est donc que
    document.frames['frame_chat'].location.reload(); lui pose problème ...

    Edit :
    Dans le sens inverse cad :

    document.getElementById("idmsg").value='test js ok';
    document.getElementById("idmsg").focus();
    document.frames['frame_chat'].location.reload();

    Mon champs de formulaire prend bien la valeur test js ok

  6. #6
    Membre confirmé Avatar de Ministar
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Par défaut
    Le problème viendrais de ma frame qui est en fait une iframe?

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/06/2014, 18h20
  2. comment actualiser une frame à partir d'une autre
    Par agur29 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/10/2007, 10h14
  3. Redirection d'une frame contenue dans une frame
    Par eraim dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/09/2006, 12h01
  4. [PHP] Comment actualiser une frame à partir d'une autre ?
    Par pekka77 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 28/10/2005, 12h03
  5. Réponses: 6
    Dernier message: 27/10/2005, 21h12

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