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

Résolu
ir_1997 Messages postés 102 Statut Membre -  
ir_1997 Messages postés 102 Statut Membre -
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>
A voir également:

2 réponses

jordane45 Messages postés 40050 Statut Modérateur 4 754
 
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 102 Statut Membre
 
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 40050 Statut Modérateur 4 754
 
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 102 Statut Membre > jordane45 Messages postés 40050 Statut Modérateur
 
D’accord mais es ce que je peux
Mettre le code Ajax html php dans un même script ?
0
jordane45 Messages postés 40050 Statut Modérateur 4 754 > ir_1997 Messages postés 102 Statut Membre
 
En général on met le code php dans un fichier à part.
0
jordane45 Messages postés 40050 Statut Modérateur 4 754 > jordane45 Messages postés 40050 Statut Modérateur
 
Salut
Tu penseras à mettre la discussion en résolue ?
Merci
0
ir_1997 Messages postés 102 Statut Membre > jordane45 Messages postés 40050 Statut Modérateur
 
c'est fait
0