Das Abrufen von Daten aus einer PHP-Datei gibt einen Nullwert zurück
P粉617237727
P粉617237727 2023-08-30 11:20:14
0
1
427
<p>Ich versuche zu testen und zu lernen, wie das Abrufen funktioniert, also möchte ich einige Daten von Javascript an eine PHP-Datei senden. Mein Problem ist, dass ich die Daten (in der PHP-Datei) nicht abrufen kann und nur eine bekomme Null-Antwort. </p> <p>Ich verwende POST, aber ich habe es mit GET versucht und die gleichen Ergebnisse erhalten</p> <p>Nebenbei bemerkt: In der Konsole wird die Verbindung im Netzwerk erst angezeigt, nachdem ich F5 gedrückt habe, was meines Wissens nach bereits funktionieren sollte, wenn ich Test.php öffne. </p> <p><em><strong>datosJS.js</strong></em></p> <pre class="brush:php;toolbar:false;">let datos = { Methode: "POST", Überschriften: { „Inhaltstyp“: „application/json“ }, body: JSON.stringify({ Benutzername: "Jonathan", E-Mail: "jonathan@gmail.com", Passwort: "123456" }) } fetch('Test.php',datos) .then(resp => resp.text()) .then(resp =>{ console.log(resp); })</pre> <p><em><strong>Test.php</strong></em></p> <pre class="brush:php;toolbar:false;"><script src="datosJS.js" type="text/javascript"></script> "datosJS.js", um die Daten hier in Test.php zu empfangen <?php $body = json_decode(file_get_contents("php://input"), true); var_dump($body); ?></pre> <p>Ich weiß, dass sich PHP auf der Serverseite und JS auf der Clientseite befindet und dass beide zu unterschiedlichen Zeiten ausgeführt werden, aber ich habe Probleme, eine Lösung für dieses Problem zu finden. </p> <p>Vielen Dank für Ihre Hilfe! </p> <p>** Es wurde eine kleine Änderung beim Abrufen vorgenommen, die es mir jetzt ermöglicht, die Daten in der Konsole anzuzeigen</p>
P粉617237727
P粉617237727

Antworte allen(1)
P粉826283529

终于我设法解决了这个问题,解释如下:

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
    
})
}

测试.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);
  
            ?>

下面我会标出原代码中缺少的内容:

  • 在 datosJS.js 中 document.getElementById('results').innerHTML = resp; 并将所有内容包装在 window.onload = function() {}

  • 在 Test.php 中将 id="results" name="results" 添加到 divsection 或其他内容从innerHTML接收。

我希望它对将来的人有所帮助。干杯

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!