L'obtention de données à partir d'un fichier PHP renvoie une valeur nulle
P粉617237727
P粉617237727 2023-08-30 11:20:14
0
1
515
<p>J'essaie de tester et d'apprendre comment fonctionne la récupération, donc je veux envoyer des données de javascript vers un fichier php, mon problème est que je ne peux pas récupérer les données (dans le fichier php) et obtenir seulement un réponse nulle. </p> <p>J'utilise POST, mais j'ai essayé d'utiliser GET et j'ai obtenu les mêmes résultats</p> <p>En remarque, dans la console, la connexion au réseau n'apparaît qu'après avoir appuyé sur F5, ce qui, je crois, devrait déjà fonctionner lorsque j'ouvre Test.php. </p> <p><em><strong>datosJS.js</strong></em></p> <pre class="brush:php;toolbar:false;">let datos = { méthode : "POST", en-têtes : { "Type de contenu" : "application/json" }, corps : JSON.stringify({ nom d'utilisateur : "Jonathan", email : "jonathan@gmail.com", mot de passe : "123456" }) } récupérer('Test.php',données) .then(resp => resp.text()) .then(resp =>{ console.log(resp); })</pré> <p><em><strong>Test.php</strong></em></p> <pre class="brush:php;toolbar:false;"><script src="datosJS.js" type="text/javascript"></script> "datosJS.js" pour recevoir les données ici dans Test.php <?php $body = json_decode(file_get_contents("php://input"), true); var_dump($corps); ?>≪/pré> <p>Je sais que PHP est côté serveur et JS côté client, et qu'ils s'exécutent tous les deux à des moments différents, mais j'ai du mal à trouver une solution à ce problème. </p> <p>Merci pour votre aide ! </p> <p>** Modification d'un petit changement dans la récupération qui me permet désormais d'afficher les données dans la console</p>
P粉617237727
P粉617237727

répondre à tous(1)
P粉826283529

Finalement, j'ai réussi à résoudre le problème, expliqué ci-dessous :

datosJS.js

window.onload = function() {

let datos = {
   method: "POST",
   headers: {
            "Content-type" : "application/json"
   },
   body: JSON.stringify({ 
      username:"Jonathan",
      email:"jonathan@gmail.com",
      password:"123456"
  })
}

fetch('Test.php',datos)
.then(resp => resp.text())
.then(resp =>{
console.log(resp);
        document.getElementById('results').innerHTML = resp; 

    //document.querySelector('#results').innerHTML = resp; // works as well as getElementById
    
})
}

test.php

<script src="datosJS.js" type="text/javascript"></script>

<section class="Section" id="results" name="results">

            <?php

            $body = json_decode(file_get_contents("php://input"), true);
            $nombre = $body['username'];

            echo  $nombre;
            echo  '</br>';
            print_r($body);
  
            ?>

Ci-dessous, je marque ce qui manque dans le code original :

  • Dans datosJS.js document.getElementById('results').innerHTML = resp; et enveloppez le tout dans window.onload = function() {}

  • Dans Test.php, ajoutez id="results" name="results" au div, section ou à tout autre contenu reçu d'innerHTML.

J'espère que cela aidera quelqu'un à l'avenir. Bravo

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal