Extrahieren Sie mithilfe von JavaScript weitere Informationen aus PHP-Seiten
P粉445714413
P粉445714413 2023-08-13 12:27:33
0
1
592
Um einen bestimmten Teil der Seite automatisch zu aktualisieren, ohne die Seite ständig neu laden zu müssen, habe ich diesen Code auf der Plattform implementiert. Wenn Sie nur ein Datenelement aktualisieren möchten, funktioniert alles einwandfrei. Tatsächlich enthält die PHP-Seite mehrere Abfragen, um verschiedene Abschnitte zu füllen. Wie melde ich die Datenergebnisse für alle Abfragen? Dies ist der JS-Code in index.php: <pre class="brush:js;toolbar:false;">function nLettere() { var xhttp = new XMLHttpRequest(); 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); </pre> Dies ist die PHP-Seite, die die Abfrage an die Datenbank sendet: <pre class="brush:php;toolbar:false;"><?php include '../config.php'; // Verbindung prüfen if ($conn->connect_error) { die("Verbindung fehlgeschlagen: " . $conn->connect_error); } $query = "SELECT COUNT(id) AS total FROM indirizzi"; $risultato = $conn->query($query); if ($risultato->num_rows > 0) { //Ausgabedaten jeder Zeile while($row = $risultato->fetch_assoc()) { $numero = $row["totale"]; } } anders { $numero = "Ancora nessuna per ora!"; } $query = "SELECT COUNT(stato) AS daConsegnare FROM indirizzi WHERE stato = ''"; $risultato = $conn->query($query); if ($risultato->num_rows > 0) { //Ausgabedaten jeder Zeile while($row = $risultato->fetch_assoc()) { $daConsegnare = $row["daConsegnare"]; } } anders { $daConsegnare = "Es ist Zeit für uns!"; } ?> </pre> Derzeit funktioniert dieser Code nur mit einem Datenelement, dem Ergebnis der ersten Abfrage. Aber ich muss auch die Ergebnisse der zweiten Abfrage importieren und so weiter ...
P粉445714413
P粉445714413

Antworte allen(1)
P粉642919823

要使用不同查询的数据更新页面的多个部分,您可以相应地修改JavaScript代码和PHP代码。以下是您可以执行的操作:

修改您的PHP脚本(caricaNumeri.php),以返回包含两个查询结果的JSON对象:

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

?>

修改您的JavaScript代码以处理PHP脚本返回的多个数据片段:

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); // 每秒更新一次(根据需要进行调整)

更新您的HTML,包括第二个数据的占位符:

html

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

现在,当您运行caricaNumeri函数时,它将从服务器获取两个数据片段并更新页面的相应部分。请根据您希望数据更新的频率调整间隔时间(setInterval)。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage