Voici mes modifications suite à tes explications !
Modification du fichier Read_base.php :
pour "encoder" le JSON comme il faut pour pouvoir être interpréter en JS .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <?php
include("code_base_de_donnee.php");
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT Capteur, Etat FROM Ma_table";
$result = $conn->query($sql);
$donnees = []; // création d'un tableau pour stocker les données
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) { // output data of each row
$donnees[$row["Capteur"]] = $row["Etat"];
}
}
else {
echo "0 results";
}
$resultat_json = json_encode($donnees);
echo $resultat_json ;
$conn->close();
?> |
Quand j'ouvre la requete cela me donne :
{"LED1":"1","LED2":"0","LED3":"0","INTER":"0","POTAR1":"1234","POTAR2":"5678","BUZ":"0","MAJ":"56","MAJ_web":"56","MAJ_ESP":"56"}
Ce qui as l'air d'être correct et attendu ! déjà la je sais pas trop comment j'ai réussis si j'ai bon !
Ensuite dans le html qui contient mon Javascript :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
/*Lit l'état des LEDs toutes les 0.5 secondes */
function Read_DB()
{
const requete_MAJ= new XMLHttpRequest();
requete_MAJ.open("GET", "/Read_Base.php", true);
requete_MAJ.send();
requete_MAJ.addEventListener("load", () => {
if (requete_MAJ.responseText.includes("LED1=1")) {
imageLedBon.style.display ='inline'; imageLedBoff.style.display ='none';
//document.getElementById("imageLedB").classList.add('LED1_on');
} else if (requete_MAJ.responseText.includes("LED1=0")) {
imageLedBon.style.display ='none'; imageLedBoff.style.display ='inline';
//document.getElementById("imageLedB").classList.remove('LED1_on');
}
if (requete_MAJ.responseText.includes("LED2=1")) {
imageLedJon.style.display ='inline'; imageLedJoff.style.display ='none';
} else if (requete_MAJ.responseText.includes("LED2=0")) {
imageLedJon.style.display ='none'; imageLedJoff.style.display ='inline';
}
if (requete_MAJ.responseText.includes("LED3=1")) {
imageLedRon.style.display ='inline'; imageLedRoff.style.display ='none';
} else if (requete_MAJ.responseText.includes("LED3=0")) {
imageLedRon.style.display ='none'; imageLedRoff.style.display ='inline';
}
if (requete_MAJ.responseText.includes("INTER=1")) {
imageInteron.style.display ='inline'; imageInteroff.style.display ='none';
} else if (requete_MAJ.responseText.includes("INTER=0")) {
imageInteron.style.display ='none'; imageInteroff.style.display ='inline';
}
//var reponse = requete_MAJ.response["POTAR2"];
console.log(requete_MAJ);
setTimeout( Read_DB, 500 )
})
}
Read_DB() // je repete l'opération toute les 0.5 secondes |
Le résultat semble correct dan la console j'obtiens :
XMLHttpRequest { onreadystatechange: null, readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, responseURL: ".../Read_Base.php", status: 200, statusText: "OK", responseType: "", response: " {\"LED1\":\"1\",\"LED2\":\"0\",\"LED3\":\"0\",\"INTER\":\"0\",\"POTAR1\":\"1234\",\"POTAR2\":\"5678\",\"BUZ\":\"0\",\"MAJ\":\"56\",\"MAJ_web\":\"56\",\"MAJ_ESP\":\"56\"} " }
Ensuite quand je décommente la ligne
//var reponse = requete_MAJ.response["POTAR2"];
j'ai toujours le message "undefined" qui apparait !
Partager