Les données ne s'enregistre pas dans la base de donnée


 "` Index.php
 <!DOCTYPE html>
<html>
<head>
  <title>Le tchat en AJAX !</title>
</head>
<body>
  <div id="messages">
    <!-- les messages du tchat -->
    <?php
    // on se connecte à notre base de données
    try{
      $bdd = new PDO('mysql:host=localhost;dbname=test', 'root','');
    }catch (Exception $e){
      die('Erreur : ' . $e->getMessage());
    }
    // on récupère les 10 derniers messages postés
    $requete = $bdd->query('SELECT * FROM messages ORDER BY id DESC LIMIT 0,10');
    while($donnees = $requete->fetch()){
    // on affiche le message (l'id servira plus tard)
      echo "<p id=\"" .$donnees['id']. "\">" .$donnees['pseudo']. " dit : " .$donnees['message']. "</p>";
    }
    $requete->closeCursor();
    ?>
  </div>
  <form method="POST" action="traitement.php">
    Pseudo : <input type="text" name="pseudo" id="pseudo" /><br />
    Message : <textarea name="message" id="message"></textarea><br />
    <input type="submit" name="submit" value="Envoyez votre message !"id="envoi" />
  </form>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script src="main.js"></script>
</body>
</html>

traitement.php
<?php
try{
  $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}catch (Exception $e)
{
  die('Erreur : ' . $e->getMessage());
}
if(isset($_POST['submit'])){
  if(!empty($_POST['pseudo']) AND !empty($_POST['message'])){
    $pseudo = ($_POST['pseudo']);
    $message = ($_POST['message']);
    $insertion = $bdd->prepare('INSERT INTO messages VALUES("",:pseudo, :message)');
    $insertion->execute(array('pseudo' => $pseudo,'message' => $message));

  }else{
    echo "Vous avez oublié de remplir un des champs !";
  }
}
?>

main.js
$('#envoi').click(function(e){
  e.preventDefault();
  var pseudo = encodeURIComponent( $('#pseudo').val() );
  var message = encodeURIComponent( $('#message').val() );
  if(pseudo != "" && message != ""){
    $.ajax({
      url : "traitement.php",
      type : "POST", // la requête est de type POST
      data : "pseudo=" + pseudo + "&message=" + message
    });
    $('#messages').append("<p>" + pseudo + " dit : " + message +"</p>");
    }
});
``" 

Ce que je veux

Décrivez ce que vous cherchez à obtenir.

Ce que j'obtiens

Je vous pas d'eventuelles erreurs

4 réponses


Azorgh
Réponse acceptée

Bonjour BabacarDiallo201,

Peut être qu'un peu plus de politesse serait le bienvenu, un bonjour, un explication clair de ton soucis, montrer ce que tu as déjà cherché etc, aurait été un plus...

C'est ton premier sujet sur le forum, je te souhaite donc la bienvenue !

Je pense avoir trouvé ton soucis, mais il faudrait que tu cherches par toi même.
Dans un premier temps, je ne peux que te conseiller de regarder les données envoyées en Ajax via l'onglet Network de la console développeur.
Ensuite, de debugger côté PHP les données reçues ($_POST) et voir à quel moment "ça coince".

je vous demande pardon c'est ma premiere sujet sur le forum.
Les données envoyées par ajax ne sont pas recu
voici ce qui s'affiche dans response : this request has no response data available

Ca ne veut pas dire que les données ne sont pas reçu ça.
Ca veut dire qu'il n'y a pas de réponse renvoyée, c'est différent !

Je peux te conseiller de mettre des echo un peu partout dans ton code (avant ton if(isset($_POST['submit'])), dedans, après, etc).
Ensuite, tu pourras regarder la réponse et voir quel(s) echo passe(nt) ou pas, et en fonction pouvoir pousser ta recherche du dît bug !

ok sinon pouvez vous me faire un exemple tipique