Partage

la mise a jour d'un div ne se fait pas

3 janvier 2018 à 13:05:20

Bonjour je crée un tchat en php et ajax mais j'ai un soucis la mise a jour de mes profils ne se fait pas au submit du formulaire
par contre les données sont bien la si je recharge la page

voici mon code:

<?php
session_start(); 

include "".$_SERVER['DOCUMENT_ROOT']."/include/mysql_connect.php";
?>
<script>

$(document).ready(function (e) {
    $('#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
            document.getElementById('list_profil').innerHTML; // Mise à jour des profils de contact
            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;
</script>

<br>

<div class="chatter">

<div id="list_profil" class="chat_profils">
<?php include "".$_SERVER['DOCUMENT_ROOT']."/fiche_cli/liste_profil.php"; ?>
</div>



<div class="chat_ecrire">
<?php include "".$_SERVER['DOCUMENT_ROOT']."/fiche_cli/ajoute_mess.php"; ?>
</div>


<div id="affiche_mess" class="messages">
<?php include "".$_SERVER['DOCUMENT_ROOT']."/fiche_cli/affiche_mess.php"; ?>
</div>


</div>
3 janvier 2018 à 13:42:34

salut,

ta ligne 19 fait rien. la propriété innerHTML est lue mais pas modifiée puisqu'il y a pas d'assignation.

pourquoi tu ménage jquery et javascript natif comme ça ? c'est bizarre

3 janvier 2018 à 13:58:29

en fait quand il y a submit il y a des donnnées enregistré dans mysql

ce que je souhaite faire c'est donc mettre à jour le div list_profil avec les nouvelles données mysql 

3 janvier 2018 à 15:07:57

oui j'avais bien compris

ma question c'est pas de savoir ce que tu cherches à faire, mais pourquoi mélanger l'utilisation de jQuery et de javascript natif comme ça ? 

mais l'essentiel, c'était ma première phrase : ta ligne 19 ne fait rien, elle n'a aucune incidence ni sur la page ni sur le reste du code. Regarde ici les exemples d'utilisation https://developer.mozilla.org/fr/docs/Web/API/Element/innertHTML 

4 janvier 2018 à 9:34:16

j'ai reussi ce que je voulais

j'ai rajouté une seconde requete ajax dans ma premiere

ce qui est codé en javascript c'est ce que je n'ai pas réussi à faire en jquery

4 janvier 2018 à 13:11:21

tu pourrais le faire en une seule requête, qui au lieu de renvoyer du HTML renvoie du JSON (faut donc modifier ta page php) : 

{
  "message": "contenu du message",
  "profils": "contenu des profils"
}

Bien sûr les propriétés message et profils peuvent contenir du HTML. Ce qui donne :

$.ajax({
            url: '/fiche_cli/affiche_mess.php',
            method: 'GET',
            dataType: 'json',
            data: $form.serialize()
        }).then(function (data) {
            $("#affiche_mess").html(data.message); // Mise à jour des messages
            $('#list_profil').html(data.profils);
            
            // etc...
        })



la mise a jour d'un div ne se fait pas

× 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