Ajax ... aucune donnée transmise.

Bonjour à tous,

Je n'arrive pas à transférer la donnée d'une variable de mon JS vers mon PHP, j'ai pourtant tout réduit à son maximum.

Voici mon code JS : 

function addStats2() {
  var data = "ok";
  var xhr = new XMLHttpRequest();
  xhr.open("POST", "script2.php", true);
  xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhr.send(data);
}

Mon PHP est tout simple ...
J'affiche juste la variable POST via :

print_r($_POST);

Et pourtant, ce que je reçois sur mon navigateur c'est un array vide... 

Array () 

Je ne reçois pas mon "ok"

Une idée ? 

Merci bien :-)

EDIT : Déplacement du sujet dans le bon forum

EDIT² : Ajout des balises de code

2 réponses

  1. Modérateur

    Bonjour,

    Si tu ne nommes pas ta variable, normal que ça ne marche pas.

    function addStats2() {
      var data = "mavariable=ok";
      var xhr = new XMLHttpRequest();
      xhr.open("POST", "script2.php", true);
      xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      xhr.send(data);
      xhr.onreadystatechange = function() {//Call a function when the state changes.
        if(xhr.readyState == 4 && xhr.status == 200) {
            alert(xhr.responseText);
        }
      }
      xhr.send(params);
    }

    0
    1. Merci pour la réponse.
      Je vois bien dans la partie requête : données de formulaire avec mavariable = ok
      Cependant je vois toujours un array vide en réponse... :(

      0
      1. Modérateur

        Pourrais-tu nous mettre une capture d'écran de la console contenant l'appel Ajax ainsi que l'onglet requête est l'onglet réponse ?

        Merci également de nous montrer le code complet de ta page script2.php.

        Pense aussi à vérifier l'encodage de tes fichiers.

        Voir chapitre 1 du lien suivant

        https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8

        0
      2. Modérateur
        @jordane45

        Tu peux aussi essayer de transmettre les données en Json.

        Et sinon, si tu veux une méthode un peu plus récente, tu peux utiliser l'API fetch()

        0