Partage
  • Partager sur Facebook
  • Partager sur Twitter

tchat mettre a jour formulaire message

Sujet résolu
    12 janvier 2018 à 9:57:41

    bonjour

    sur mon tchat j'avais oublié de mettre à jour mon formulaire avec le nouveau destinataire quand on change de conversasion
    mais le destinataire ne change pas c'est toujours le même qui est récupéré

    voici la partie que je veux mettre à jour

    <div id="chat_ecrire" class="chat_ecrire">
    <form id="ajoute_mess" name="ajoute_mess" action="" method="get">
    <?php
    if (isset($_SESSION['pseudo']))
    {
        echo '<input type="hidden" name="action" value="envoyer">';
    }
    else
    {
        echo '<input type="hidden" name="action" value="no_connect">';
    }
    ?>
    <input type="hidden" name="dest" value="<?php echo $_GET['dest']; ?>">
    <input type="hidden" name="exp" value="<?php echo $_GET['exp']; ?>">
    <INPUT type="text" name="message" placeholder="Entrez votre message" value="">
    <button class="btn">Envoyer</button>
    </form>
    </div>
    

    et voici ma fonction c'est la partie qui apelle la page ajoute_mess qui est concerné

    $("body").on('click', '.chat_profils_homme',function(event) {
                      event.preventDefault();
                      var afficheMess = document.getElementById('affiche_mess');
                      var id_refresh = $('#affiche_mess div:first').attr('id');
    
                      var exp = $('.chat_profils_homme').attr('data-exp');
                      var dest = $('.chat_profils_homme').attr('data-dest');
    
                      clearInterval(interval); 
                      var url = $(this).prop('href');
                      $.ajax({url:url}).done(function(data) { 
                      $("#affiche_mess").html(data); 
                      afficheMess.scrollTop = afficheMess.scrollHeight;
                      });
    
                      $.ajax({
                          url: '/fiche_cli/ajoute_mess.php?exp=' + exp + '&dest=' + dest
                          }).done(function(data) { 
                      $("#chat_ecrire").html(data); 
                      });
    
    
    
        interval = setInterval(function() {update();}, 1000);
    
                  });
    



    • Partager sur Facebook
    • Partager sur Twitter

    Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça

      12 janvier 2018 à 10:50:18

      Bonjour,

      Pourquoi utilise-tu document.getElementById alors qu'un petit $('#id') suffit ?

      je ne vois pas de class="chat_profils_home" dans ton html

      tu remplis quelque chose qui a un id affiche_mess, je ne le vois pas non plus dans ton html

      Je pense que ton problème viens de tes sélecteurs jquery qui sont null (un sélecteur jquery selectionne les objets du dom, il ne les créé pas par magie)

      Un petit conseil : si tu as un peu de temps et que tu te débrouille en anglais, fais un tour sur https://socket.io/get-started/chat/ (ça doit aussi exister sur open classrooms)

      -
      Edité par piero5673 12 janvier 2018 à 10:53:33

      • Partager sur Facebook
      • Partager sur Twitter
        12 janvier 2018 à 11:11:56

        j'avais mis qu'une partie du code et j'ai du oublier une partie voici le code complet de la page

        <?php
        session_start(); 
        
        
        
        include "".$_SERVER['DOCUMENT_ROOT']."/include/mysql_connect.php";
        
        
        ?>
        <script>
        var interval;
        clearInterval(interval);
        
        function update(){
        
        
                var id_update = $('#affiche_mess div:last').attr('id'); // on récupère le dernier ID
        		var exp = $('#affiche_mess div:last').attr('data-exp');
        		var dest = $('#affiche_mess div:last').attr('data-dest');
        
                $.ajax({
                url : "/fiche_cli/update_mess.php?id=" + id_update + "&exp=" + exp + "&dest=" + dest, // on passe l'id le plus récent au fichier de chargement
                method : 'GET',
                success : function(html){
                $('#affiche_mess').append(html);
                }
                });
        
        }
        
        	interval = setInterval(function() {update();}, 1000);
        
        
        $(document).ready(function() {
                   //var interval;
                    $("body").on('click', '.chat_profils_homme',function(event) {
                          event.preventDefault();
        				  var afficheMess = document.getElementById('affiche_mess');
        				  var id_refresh = $('#affiche_mess div:first').attr('id');
        				  
        				  var exp = $('.chat_profils_homme').attr('data-exp');
        				  var dest = $('.chat_profils_homme').attr('data-dest');
        
                          clearInterval(interval); 
                          var url = $(this).prop('href');
        				  $.ajax({url:url}).done(function(data) { 
        				  $("#affiche_mess").html(data); 
        				  afficheMess.scrollTop = afficheMess.scrollHeight;
        				  });
        				  
        				 $.ajax({
        				 url: '/fiche_cli/ajoute_mess.php?exp=' + exp + '&dest=' + dest
        				 }).done(function(data) { 
        				 $("#chat_ecrire").html(data); 
        				 });
        				 
        
        	interval = setInterval(function() {update();}, 1000);
        
                      });
        
        
             	  $('#ajoute_mess').on('submit', function(e) {
                e.preventDefault();
                var $form = $(this);
                $.ajax({
                    url: '/fiche_cli/affiche_mess.php',
                    method: 'GET',
                    dataType: 'html',
                    data: $form.serialize()
                }).then(function (data) {
                    $("#affiche_mess").html(data); // Mise à jour des messages
        			
        			
        			$.ajax({
                    url: '/fiche_cli/liste_profil.php',
                    method: 'GET',
                    dataType: 'html',
                    data: $form.serialize()
                }).then(function (data) {
                    $("#list_profil").html(data);
        			$('.chat_profils_homme');
        			document.forms['ajoute_mess'].reset();
        			document.getElementById('affiche_mess').scrollTop=document.getElementById('affiche_mess').scrollHeight;
        
        			
        
        			}).catch(function (error) {
                    console.log(error);
                });
        			
        			
                }).catch(function (error) {
                    console.log(error);
                });
            });
        });
        
        
        document.getElementById('affiche_mess').scrollTop=document.getElementById('affiche_mess').scrollHeight;
        
        </script>
        <br>
        
        <div class="chatter">
        
        <div id="list_profil" class="chat_profils">
        <?php 
        $sql2 = "SELECT dest FROM chat WHERE exp='".$_SESSION["pseudo"]."' GROUP BY dest";
        
        $req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
        
        while($data2 = mysql_fetch_array($req2))
        {
        $sql3 = mysql_query("SELECT sexe FROM membres WHERE pseudo='".$data2['dest']."'") or die (mysql_error());
        list($sexe) = mysql_fetch_row($sql3);
        
        
        
        if ($sexe == 'Homme')
        {
        echo '<A data-exp="'.$_SESSION['pseudo'].'" data-dest="'.$data2['dest'].'" style="margin-bottom: -15px; color: #007ba2;" class="chat_profils_homme" href="/fiche_cli/affiche_mess.php?exp='.$_SESSION['pseudo'].'&dest='.$data2['dest'].'">'.$data2['dest'].'</a>';
        }
        else
        {
        echo '<A data-exp="'.$_SESSION['pseudo'].'" data-dest="'.$data2['dest'].'" style="margin-bottom: -15px; color: #f40e63;" class="chat_profils_homme" href="/fiche_cli/affiche_mess.php?exp='.$_SESSION['pseudo'].'&dest='.$data2['dest'].'">'.$data2['dest'].'</a>';
        }
        }
        
        ?>
        </div>
        
        
        
        <div id="chat_ecrire" class="chat_ecrire">
        <form id="ajoute_mess" name="ajoute_mess" action="" method="get">
        <?php
        if (isset($_SESSION['pseudo']))
        {
        	echo '<input type="hidden" name="action" value="envoyer">';
        }
        else
        {
        	echo '<input type="hidden" name="action" value="no_connect">';
        }
        ?>
        <input type="hidden" name="dest" value="<?php echo $_GET['dest']; ?>">
        <input type="hidden" name="exp" value="<?php echo $_GET['exp']; ?>">
        <INPUT type="text" name="message" placeholder="Entrez votre message" value="">
        <button class="btn">Envoyer</button>
        </form>
        </div>
        
        
        <div id="affiche_mess" style="line-height: 10px;" class="messages">
        <?php
        
        $aujourdhui = date("Y-m-d H:i:s");
        
        if (isset($_GET['message']))
        {
        $sql1 = "INSERT INTO chat (exp,dest,mess,date,nouv) VALUES('".$_GET['exp']."','".$_GET['dest']."','".$_GET['message']."','$aujourdhui','oui')"; 
        mysql_query($sql1) or die('Erreur SQL !'.$sql1.'<br>'.mysql_error());
        }
        
        $sql2 = "SELECT exp,dest,mess,id FROM chat WHERE exp='".$_GET["exp"]."' AND dest='".$_GET['dest']."' OR exp='".$_GET['dest']."' AND dest='".$_GET["exp"]."' ORDER BY id ASC";
        $req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
        
        while($data2 = mysql_fetch_array($req2))
        
        {
        
        if ($data2['exp']==$_GET['exp'])
        {
        echo '<div data-exp="'.$_GET["exp"].'" data-dest="'.$_GET["dest"].'" id="'.$data2['id'].'">Moi: '.$data2['mess'].'</div><br>';
        }
        if ($data2['exp']==$_GET['dest'])
        {
        echo '<div data-exp="'.$_GET["exp"].'" data-dest="'.$_GET["dest"].'" id="'.$data2['id'].'">'.$data2['exp'].': '.$data2['mess'].'</div><br>';
        }
        	
        }
        ?>
        </div>
        
        
        </div>
        



        • Partager sur Facebook
        • Partager sur Twitter

        Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça

        tchat mettre a jour formulaire message

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown