Partage
  • Partager sur Facebook
  • Partager sur Twitter

XMLHttpRequest() Problème

Besoin d'envoyer une forme XML vers PHP

Sujet résolu
    18 février 2017 à 14:33:05

    Bonjour,

    J'ai besoin d'envoyer un contenu xml vers php. 

    var doc = document.implementation.createDocument("", "", null);
    
    var niveauElem = doc.createElement("niveau");
    
    ...
    
    niveauElem.appendChild(MaisonElement);

    C'est un arbre XML que je veux envoyer à PHP pour l'enregistrer en fichier sur le serveur. ;)

    J'ai suivi le tuto sur le site, mais je n'arrive pas à mettre le truc en oeuvre. ça me renvoie un array ? o_O

    var xhr = getXMLHttpRequest();
    xhr.open("POST", "enregistre.php", true);
    xhr.onreadystatechange = function() {
    	if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
    		console.log(xhr.responseText);
    	}
    };
    
    xhr.setRequestHeader("Content-Type", "text/plain");
    xhr.overrideMimeType('text/xml');
    xhr.send(niveauElem);

    Sur ma page PHP j'ai :

    <?php
    header("Content-type: text/plain");
    print_r($_POST);
    ?>

    La console me retourne :

    Array

    (

    )

    Je n'arrive pas à comprendre mon erreur :(

    Merci d'avance pour vos conseils ;)



    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      18 février 2017 à 15:37:17

      Salut,

      La variable $_POST est un tableau contenant toutes les valeurs passées en paramètres dans ta requête POST.

      print_r renvoie un affichage clair d'une variable, elle va donc décomposer le contenu d'un tableau en Array (logique).

      Si tu veux seulement afficher 1 variable, il faut que tu affiches un $_POST['param'] précis, où param est la clé du paramètre de ton formulaire que tu tentes de récupérer.

      • Partager sur Facebook
      • Partager sur Twitter
        19 février 2017 à 18:18:01

        Le problème c'est que je n'ai pas de paramètre :/

        Vu que c'est une forme XML ! Je suis perdu 

        • Partager sur Facebook
        • Partager sur Twitter
          19 février 2017 à 18:56:02

          Fait un:

          $xml = file_get_contents('php://input');

          Tu n'as aucun paramètre envoyé en post, juste du xml, donc normal que ton tableau soit vide.

          • Partager sur Facebook
          • Partager sur Twitter

          XMLHttpRequest() Problème

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown