Quand je post un nouveau message et quand je selectionne une autre discution ma scrollbare ne se baisse pas

Quand je post un nouveau message le formulaire ne se vide pas

voici le code jquery

$(document).ready(function() {
           //var interval;
            $("body").on('click', '.chat_profils_homme',function(event) {
                  event.preventDefault();
                  clearInterval(interval); 
                  var url = $(this).prop('href');
                  $.ajax({url:url}).done(function(data) { $("#affiche_mess").html(data); });
                  interval = setInterval(function() {$.ajax({url:url}).done(function(data) { $("#affiche_mess").html(data); }); },1000); // je le met à jour toutes les 5 secondes
                  document.getElementById('affiche_mess').scrollTop=document.getElementById('affiche_mess').scrollHeight;

              });

          $('#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').position({
            top : '30px' 
            });

            }).catch(function (error) {
            console.log(error);
        });

            document.forms['ajoute_mess'].reset(); // Reset du formulaire
            document.getElementById('affiche_mess').scrollTop=document.getElementById('affiche_mess').scrollHeight; // Baisse la scrollbar
        }).catch(function (error) {
            console.log(error);
        });
    });
});

document.getElementById('affiche_mess').scrollTop=document.getElementById('affiche_mess').scrollHeight;

2 réponses


Lartak
Réponse acceptée

Tu n'as pas l'impression que tu fais sélectionner un peu trop souvent l'élément ayant l'ID __affiche_mess__ ?
Tu devrais plutôt créer une variable qui contiendra l'élément.


$('#ajoute_mess').on('submit', function(e) {
    e.preventDefault();
    var $form = $(this), afficheMess = document.getElementById('affiche_mess');
    // suite du code ...
    afficheMess.scrollTop = afficheMess.scrollHeight;
    // suite ...
});

merci à vous deux mon chat est terminé

j'ai juste modifié pour ne raffraichir que les derniers messages reçu et non la totalité