PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Forum Général PHP » Problème PHP/AJAX » 04-07-2019 02:07:05

elvyn
Réponses : 1

Bonjour,
Alors voilà mon problème, je cherche à faire un espace commentaires en PHP/AJAX, sauf que les données rentrent très bien dans ma BDD mais ne s'affichent pas sur mon site, je précise que je suis débutant et que je manque de connaissances, soyez compréhensif merci smile




        <?php
        try
        {
            $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
            $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }
        catch(Exception $e)
        {
            die('Erreur : '.$e->getMessage());
        }
        $task = "list";

        if(array_key_exists("task", $_GET))
        {
            $task = $_GET['task'];
        }
        if($task == "write")
        {
            postMessage();
        }
        else
        {
            getMessages();
        }
        function getMessages()
        {
            global $bdd;
            $req3 = $bdd->prepare('SELECT (poney_com.com) as coms, id_nom FROM poney_com INNER JOIN poney_nom ON poney_com.id_nom = poney_nom.id WHERE poney_nom.id = '.$_GET['id']);
            $req3->execute();
            $messages = $req3->fetchAll();
            echo json_encode($messages);        
            $req3->closeCursor();
        }
        function postMessage()
        {
            global $bdd;          
            if(!array_key_exists('content', $_POST))
            {
                echo json_encode(["status" => "error", "message" => "Un ou plusieurs champs n'ont pas ete envoyes"]);
                return;
            }
            $content = $_POST['content'];
            $id = $_POST['id'];
            $prep = $bdd->prepare('INSERT INTO poney_com (com, id_nom) VALUES (:com, :id_nom)');
            $prep->bindParam(':com', $content);
            $prep->bindParam(':id_nom', $id);
            echo json_encode(["status" => "Commentaire poste"]);
            $prep->closeCursor();
        }
        ?>      
 


var url = document.getElementById(id).value;

function getMessages()
{
  const requeteAjax = new XMLHttpRequest();
  requeteAjax.open("GET", "commentaires.php" + url);
  requeteAjax.onload = function()
  {
    const resultat = JSON.parse(requeteAjax.responseText);
    const html = resultat.reverse().map(function(message)
    {
      return `
        <div class="messages">
          <span class="content">${messages.content}</span>
        </div>
      `
    }).join('');

    const messages = document.querySelector('.messages');

    messages.innerHTML = html;
    messages.scrollTop = messages.scrollHeight;
  }
  requeteAjax.send();
}
function postMessage(event)
{
  event.preventDefault();
  const content = document.querySelector('#content');
  data.append('content', content.value);
  const requeteAjax = new XMLHttpRequest();
  requeteAjax.open('POST', 'commentaires.php?task=write$id='+ url);
  requeteAjax.onload = function()
  {
    content.value = '';
    content.focus();
    getMessages();
  }
  requeteAjax.send(data);
}
document.querySelector('form').addEventListener('submit', postMessage);
const interval = window.setInterval(getMessages, 3000);
getMessages();
 

Pied de page des forums

Propulsé par FluxBB