Partage
  • Partager sur Facebook
  • Partager sur Twitter

Dédoublement DIV au refresh Ajax.

Dédoublement DIV au refresh Ajax.

Anonyme
    24 mars 2017 à 13:29:27

    Bonjour à tous, 

    Ma div ce dédouble quand j'ajoute un refresh avec Ajax avez-vous une idée?

    Mon ajax :

    function Update()
    {
    	$.ajax({
    	url: "formulaire.php",  
        type: "GET",
    	success: function(data){$('#discution').html(data);}
    }
    	);
     
    }
    	$('Update').ready(function()
    {
    	setInterval('Update();',3000);
    }
    	);
    

    Mon formulaire:

    <html>
        <head>
            <meta charset="utf-8" />
            <title>Mini-chat</title>
            <script type="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
            <script src="reload.js"></script>
        </head>
        <style>
        form
        {
            text-align:center;
        }
        </style>
        <body>
        
        <form action="traitement.php" method="post">
            <p>
            <label for="login">login</label> : <input type="text" name="login" id="login" /><br />
            <label for="message">Message</label> :  <input type="text" name="message" id="message" /><br />
    
            <input type="submit" value="Envoyer" />
    	</p>
        </form>
    <?php
    // Connexion à la base de données
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=;charset=utf8', 'root', '');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
    
    // Récupération des 10 derniers messages
    $reponse = $bdd->query('SELECT login, message FROM  ORDER BY ID DESC LIMIT 0, 10');
    
    // Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
    while ($donnees = $reponse->fetch())
    {
    	echo '  <div id="discution"><p><strong>' . htmlspecialchars($donnees['login']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p></div>';
    }
    
    $reponse->closeCursor();
    
    ?>
        </body>
    </html>

    Et mon traitement:

    <?php
    // Connexion à la base de données
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=;charset=utf8', 'root', '');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
    $req = $bdd->prepare('INSERT INTO (login, message) VALUES(?, ?)');
    $req->execute(array($_POST['login'], $_POST['message']));
    header('Location: formulaire.php');
    ?>
    

    Auriez-vous une idée? 1semaine que je cherche !!!

    Merci.


    -
    Edité par Anonyme 24 mars 2017 à 13:40:42

    • Partager sur Facebook
    • Partager sur Twitter
      24 mars 2017 à 14:06:56

      Salut,

      Le problème vient du fait que tu re-declare un div dans ton php.

      while ($donnees = $reponse->fetch())
      {
         /* echo '  <div id="discution"><p><strong>' . htmlspecialchars($donnees['login']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p></div>';*/
         echo <p><strong>' . htmlspecialchars($donnees['login']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>';
      }
      



      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        24 mars 2017 à 14:20:13

        Oui mais si j’enlève le div, comment je fait pour faire le refresh avec ajax de la div???
        • Partager sur Facebook
        • Partager sur Twitter
          24 mars 2017 à 14:30:23

          Il faut que tu sépare la requête de la page html complète et celle en ajax.

          Celle en ajax, doit juste envoyer les information à mettre à jour, et non toute une page.

          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            26 mars 2017 à 20:49:55

            ça fonctionne +- plus de dédoublement mais maintenant j'ai un problème de mémoire .. après 1-2 minutes, google n'a pas suffisamment de mémoire..

            Une idée? 

            • Partager sur Facebook
            • Partager sur Twitter

            Dédoublement DIV au refresh Ajax.

            × 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