cari

Rumah  >  Soal Jawab  >  teks badan

Ekstrak lebih banyak maklumat daripada halaman PHP menggunakan JavaScript

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粉445714413P粉445714413509 hari yang lalu601

membalas semua(1)saya akan balas

  • P粉642919823

    P粉6429198232023-08-14 11:25:25

    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.

    balas
    0
  • Batalbalas