Mendapatkan data daripada fail PHP mengembalikan nilai nol
P粉617237727
P粉617237727 2023-08-30 11:20:14
0
1
494
<p>Saya cuba menguji dan mempelajari cara pengambilan berfungsi jadi saya ingin menghantar beberapa data daripada javascript ke fail php, masalah saya ialah saya tidak boleh mendapatkan semula data (dalam fail php) dan hanya mendapat jawapan nol. </p> <p>Saya menggunakan POST, tetapi saya cuba menggunakan GET dan mendapat keputusan yang sama</p> <p>Sebagai nota sampingan, dalam konsol, sambungan dalam rangkaian hanya muncul selepas saya menekan F5, yang saya faham sepatutnya sudah berfungsi apabila saya membuka Test.php. </p> <p><em><strong>datosJS.js</strong></em></p> <pre class="brush:php;toolbar:false;">let data = { kaedah: "POST", tajuk: { "Jenis kandungan" : "aplikasi/json" }, badan: JSON.stringify({ nama pengguna:"Jonathan", e-mel:"jonathan@gmail.com", kata laluan:"123456" }) } fetch('Test.php',datos) .then(resp => resp.text()) .then(resp =>{ console.log(resp); })</pre> <p><em><strong>Ujian.php</strong></em></p> <pre class="brush:php;toolbar:false;"><script src="datosJS.js"type="text/javascript"></script> "datosJS.js" untuk menerima data di sini dalam Test.php <?php $body = json_decode(file_get_contents("php://input"), benar); var_dump($body); ?></pra> <p>Saya tahu bahawa PHP berada di bahagian pelayan dan JS berada di bahagian klien, dan kedua-duanya dijalankan pada masa yang berbeza, tetapi saya menghadapi masalah mencari penyelesaian kepada masalah ini. </p> <p>Terima kasih atas bantuan anda! </p> <p>** Mengedit perubahan kecil dalam pengambilan yang kini membolehkan saya melihat data dalam konsol</p>
P粉617237727
P粉617237727

membalas semua(1)
P粉826283529

Akhirnya saya berjaya menyelesaikan masalah, dijelaskan di bawah:

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);
  
            ?>

Di bawah saya akan menandakan apa yang tiada dalam kod asal:

  • Dalam datosJS.js document.getElementById('results').innerHTML = resp; dan bungkus semuanya dalam window.onload = function() {}

  • Dalam Test.php tambahkan id="results" name="results" pada div, section atau kandungan lain yang diterima daripada innerHTML.

Saya harap ia membantu seseorang pada masa hadapan. Ceria

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan