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

Signaler
Messages postés
83
Date d'inscription
vendredi 12 juin 2020
Statut
Membre
Dernière intervention
17 avril 2021
-
Messages postés
32090
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 avril 2021
-
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

Messages postés
32090
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 avril 2021
3 404
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 )

Messages postés
83
Date d'inscription
vendredi 12 juin 2020
Statut
Membre
Dernière intervention
17 avril 2021

voila ce que sa me m'affiche dans la console et aussi dans la source
pour firefox c'est noté


Messages postés
32090
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 avril 2021
3 404
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>
Messages postés
83
Date d'inscription
vendredi 12 juin 2020
Statut
Membre
Dernière intervention
17 avril 2021
>
Messages postés
32090
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 avril 2021

D’accord mais es ce que je peux
Mettre le code Ajax html php dans un même script ?
Messages postés
32090
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 avril 2021
3 404 >
Messages postés
83
Date d'inscription
vendredi 12 juin 2020
Statut
Membre
Dernière intervention
17 avril 2021

En général on met le code php dans un fichier à part.
Messages postés
32090
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 avril 2021
3 404 >
Messages postés
32090
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 avril 2021

Salut
Tu penseras à mettre la discussion en résolue ?
Merci