Systeme asynchrone d,envoie de message dans la bdd avec ajax php mysql

Résolu/Fermé
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021 - Modifié le 5 avril 2021 à 13:10
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021 - 20 avril 2021 à 21:49
bonjour j'aimerais faire un Systeme asynchrone d,envoie de message dans la bdd
la suis un peu perdu mon code ajax ne marche pas


document.getElementById("envoi").addEventListener("submit", function(e) {
  e.preventDefault();
 
  var data = new FormData(this);
  alert("data");
 
  var xhr = new XMLHttpRequest();
 
  xhr.onreadystatechange = function(){
    if (this.readyState == 4 && this.status == 200) {
      console.log(this.response);
      var res = this.response;
     
    } else if (this.readyState == 4) {
      alert("Une erreur est survenue...");
    }
  };
 
  xhr.open("POST", "send.php", true);
  xhr.responseType = "json";
  // xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhr.send(data);
 
  return false;
});​

if (isset($_POST['submit'])) {
if(isset ($_POST['message']) and !empty($_POST['message'])) {
 $message = htmlspecialchars($_POST['message']);

 $ins = $bdd->prepare('INSERT INTO messages(message) VALUES (?)');
          $ins->execute(array($message)); }}?> 




 <form method="POST" class="envoi" id="envoi">
          
         <textarea  classe='message' placeholder="Votre message" name="message"></textarea>
         <br /><br />
         <input class="submit" name="submit" type="submit" value="envoie"   />
         <br /><br />
         <?php if(isset($error)) { echo '<span style="color:red">'.$error.'</span>'; } ?>
          
   
   </form>

2 réponses

jordane45 Messages postés 38178 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 mai 2024 4 667
5 avril 2021 à 13:37
Bonjour,

ça ne marche ... c'est vague ...

As tu vérifié si il y a avait des erreurs dans la console js de ton navigateur ?
(pour rappel.. pour débuguer facilement de l'ajax, il faut utiliser FireFox et activer le debug XHR )

0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
5 avril 2021 à 18:35
voila ce que sa me m'affiche dans la console et aussi dans la source
pour firefox c'est noté


0
jordane45 Messages postés 38178 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 mai 2024 4 667
5 avril 2021 à 20:40
Tu as visiblement des erreurs dans ton code.
Mais sans le voir entièrement.. impossible de savoir où est le souci.

En attendant, le peu que tu nous montres ne comporte pas d'erreur
par exemple
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>TEST</title>
</head>
<body>


  <form method="POST" class="envoi" id="envoi">
     <textarea  classe='message' placeholder="Votre message" name="message"></textarea>
     <br /><br />
     <input class="submit" name="submit" type="submit" value="envoie"   />
     <br /><br />
      
  </form>

  <script type="text/javascript">

  document.getElementById("envoi").addEventListener("submit", function(e) {
    e.preventDefault();
   
    var data = new FormData(this);
    alert("data");
   
    var xhr = new XMLHttpRequest();
   
    xhr.onreadystatechange = function(){
      if (this.readyState == 4 && this.status == 200) {
        console.log(this.response);
        var res = this.response;
       
      } else if (this.readyState == 4) {
        alert("Une erreur est survenue...");
      }
    };
   
    xhr.open("POST", "send.php", true);
    xhr.responseType = "json";
    // xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.send(data);
   
    return false;
  });
  </script>
</body>
</html>
0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021 > jordane45 Messages postés 38178 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 mai 2024
6 avril 2021 à 10:41
D’accord mais es ce que je peux
Mettre le code Ajax html php dans un même script ?
0
jordane45 Messages postés 38178 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 mai 2024 4 667 > ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
6 avril 2021 à 13:05
En général on met le code php dans un fichier à part.
0
jordane45 Messages postés 38178 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 mai 2024 4 667 > jordane45 Messages postés 38178 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 mai 2024
17 avril 2021 à 23:45
Salut
Tu penseras à mettre la discussion en résolue ?
Merci
0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021 > jordane45 Messages postés 38178 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 mai 2024
20 avril 2021 à 21:49
c'est fait
0