Ekstrak lebih banyak maklumat daripada halaman PHP menggunakan JavaScript
P粉445714413
P粉445714413 2023-08-13 12:27:33
0
1
626
Untuk mengemas kini bahagian tertentu halaman secara automatik tanpa perlu sentiasa memuat semula halaman, saya telah melaksanakan kod ini pada platform. Jika anda hanya ingin mengemas kini sekeping data, semuanya berfungsi dengan baik, sebenarnya halaman php mengandungi berbilang pertanyaan untuk mengisi bahagian yang berbeza. Bagaimanakah cara saya melaporkan hasil data untuk semua pertanyaan? Ini ialah kod JS dalam index.php: <pre class="brush:js;toolbar:false;">function nLettere() { var xhttp = XMLHttpRequest baharu(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { const myObj = JSON.parse(this.responseText); document.getElementById("nLettere").innerHTML = this.responseText; } }; xhttp.open("GET", "script/caricaNumeri.php", true); xhttp.send(); } setInterval(function(){ nLettere(); }, 1); </pra> Ini ialah halaman PHP yang menghantar pertanyaan ke pangkalan data: <pre class="brush:php;toolbar:false;"><?php sertakan '../config.php'; // Semak sambungan if ($conn->connect_error) { die("Sambungan gagal: " . $conn->connect_error); } $query = "PILIH COUNT(id) SEBAGAI jumlah DARI indirizzi"; $risultato = $conn->query($query); if ($risultato->num_rows > 0) { //data keluaran setiap baris while($row = $risultato->fetch_assoc()) { $numero = $row["jumlah"]; } } lain { $numero = "Ancora nessuna per ora!"; } $query = "PILIH KIRAAN(stato) SEBAGAI daConsegnare DARI indirizzi WHERE stato = ''"; $risultato = $conn->query($query); if ($risultato->num_rows > 0) { //data keluaran setiap baris while($row = $risultato->fetch_assoc()) { $daConsegnare = $row["daConsegnare"]; } } lain { $daConsegnare = "Ancora nessuna per ora!"; } ?> </pra> Pada masa ini kod ini hanya berfungsi dengan sekeping data, hasil daripada pertanyaan pertama. Tetapi saya juga perlu mengimport hasil pertanyaan kedua dan seterusnya...
P粉445714413
P粉445714413

membalas semua(1)
P粉642919823

Untuk mengemas kini berbilang bahagian halaman dengan data daripada pertanyaan berbeza, anda boleh mengubah suai kod JavaScript dan kod PHP dengan sewajarnya. Inilah yang boleh anda lakukan:

Ubah suai skrip PHP anda (caricaNumeri.php) untuk mengembalikan objek JSON yang mengandungi hasil kedua-dua pertanyaan:

php

<?php

include '../config.php';

// 检查连接
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$response = array();

$query = "SELECT COUNT(id) AS totale FROM indirizzi";
$risultato = $conn->query($query);
if ($risultato->num_rows > 0) {
    // 输出每一行的数据
    while($row = $risultato->fetch_assoc()) {
        $response["totale"] = $row["totale"];
    }
} else {
    $response["totale"] = "Ancora nessuna per ora!";
}

$query = "SELECT COUNT(stato) AS daConsegnare FROM indirizzi WHERE stato = ''";
$risultato = $conn->query($query);
if ($risultato->num_rows > 0) {
    // 输出每一行的数据
    while($row = $risultato->fetch_assoc()) {
        $response["daConsegnare"] = $row["daConsegnare"];
    }
} else {
    $response["daConsegnare"] = "Ancora nessuna per ora!";
}

echo json_encode($response);

?>

Ubah suai kod JavaScript anda untuk mengendalikan berbilang serpihan data yang dikembalikan oleh skrip PHP anda:

javascript

function caricaNumeri() {
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            const data = JSON.parse(this.responseText);
            document.getElementById("nLettere").innerHTML = data.totale;
            document.getElementById("daConsegnare").innerHTML = data.daConsegnare;
        }
    };
    xhttp.open("GET", "script/caricaNumeri.php", true);
    xhttp.send();
}

setInterval(function(){
    caricaNumeri();
}, 1000); // 每秒更新一次(根据需要进行调整)

Kemas kini HTML anda untuk memasukkan pemegang tempat untuk data kedua:

html

<div id="nLettere"></div>
<div id="daConsegnare"></div>

Kini apabila anda menjalankan fungsi caricaNumeri ia akan mendapat dua serpihan data daripada pelayan dan mengemas kini bahagian halaman yang sepadan. Sila laraskan selang (setInterval) mengikut kekerapan anda mahu data dikemas kini.

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