PHP|Débutant :: Forums

Advertisement

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

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

#1 28-06-2019 09:12:50

elvyn
Membre
Inscription : 28-06-2019
Messages : 1

Problème PHP/AJAX

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();
 

Hors ligne

#2 04-07-2019 02:07:05

KOogar
Membre
Lieu : PHP
Inscription : 09-05-2009
Messages : 36
Site Web

Re : Problème PHP/AJAX

Tu met 2 codes sans dire :
- d'ou vienne ces codes
- quel sont les erreurs que te retourne le script quand tu le lance, on aurait les Numéros de lignes ou sont les erreurs, tu penses pas que cela pourrait nous aider ?

Hors ligne

Pied de page des forums