FormData et $_POST : Pourquoi mes champs sont vides ?

Loxarot

Loxarot Le 14 juillet 2020 à 22:15 (Édité le 14 juillet 2020 à 22:16)

Hey, salut à vous ! Je viens demander de l'aide quand-à un problème un peu perturbant... Ca fait litteralement des heures que je planche dessus sans pouvoir ne rien faire !

J'essaie de reproduire (à quelques details près, mais pas de modif' dans l'algorythmie en elle-même) l'exemple de PrimFX dans son TUTO JS #15 pour transferer des données via un formulaire en asynchrone.

Problème : mon FormData contient bien les données du formulaire, mais impossible de les traiter dans mon script php !

J'ai tout retourné dans tous les sens, parcouru la doc de FormData() sur MDN, mais rien.

document.forms['nObj'].addEventListener('submit', function(e) {

    e.preventDefault();

    let data = new FormData(this);

    let xhr = new XMLHttpRequest();

    xhr.onreadystatechange = function() {

        if(this.readyState === 4 && this.status === 200) {

            document.querySelector('#showResp').innerHTML = this.response;
            console.log(this.response);

        }

    };

    xhr.open('POST', 'res/dataBase/script.php', true);
    xhr.responseType = 'json';

    xhr.send(data);

    return false;

});

Et pour mon php :

<?php

echo $_POST['nom'];  // Renvoie "null"

echo json_encode($_POST); // Renvoie un JSON complet, sans soucis

C'est comme si ma superglobale POST ne fonctionnait que pour être renvoyée directement. Impossible d'en faire quoique ce soit... J'avoue être quand même bien désesperé, donc si vous avez une idée...

A+

Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte