Bonjour à tous,

Je reviens avec un problème que je n'arrive pas résoudre.

Je souhaite suivant le résultat d'une requête qui se met a jour toute les 0.5ssecondes , modifier l'image comme le texte.
Le texte fonctionne , il se met à jour. Mais je souhaiterais associé l'image correspondante.

E, gros quand le résultat de la requête est "allumée" j'affiche l'image "led_v_on.png" et quand le resultat est "éteinte" j'affiche led_v_off.png

Bizarrement ca ne fonctionne pas. Une petite subtilité doit m’échapper.

La fonction à examiner:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//-------------------------------------------------------------------------------
			/*Met à jour l'état des LEDs  toutes les 0.5 secondes */		
			function MAJLedV() {
 
				const idTextLed1 = document.getElementById("id-etat-ledv"); // je défini l'endroit du texte que je dois remplacer par son ID
               	                const requete_LEDV = new XMLHttpRequest();
				requete_LEDV.open("GET", "/etatLED1.php", true);
				requete_LEDV.send();
				requete_LEDV.addEventListener("load", () => {
					idTextLed1.textContent = requete_LEDV.responseText
					if (requete_LEDV.responseText == "éteinte ")
						{
							viewImage('imageLedV',"<img src='images/led_v_off.png'>");
						}
					else if (requete_LEDV.responseText == "allumée ")
						{
							viewImage('imageLedV',"<img src='images/led_v_on.png'>");
						}
				});
			}			
			setInterval(MAJLedV, 500);  // je repete l'opération toute les 0.5 secondes

Le code complet :
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<!doctype html>
<html lang="fr">
    <head>
        <meta charset="utf-8">
		<link href="style.css" rel="stylesheet" media="screen" type="text/css"> 
		<title>Commande LED</title>
    </head>
 
    <body>
 
		<h1 id="titre" style='text-align:center;'>Serveur de Jérémy</h1>
 
		<table align="center">
			<tr height:100px>
				<td>
					<table align="center" style="border:2pt solid red; "  >
						<tr>
							<td width=220px style="text-align:left;padding-left:20px;border-bottom:none;height:50px;">La LED VERTE est <span id="id-etat-ledv">-</span></td>
							<td style="text-align:left;" id="imageLedV"></td>
						</tr>
 
						<tr>
							<td width=300px style="text-align:center;border-top:none;" colspan=2 >
								<button class="bouton_on"  onclick="BoutonLED1on()">ON </button>
								<button class="bouton_off" onclick="BoutonLED1off()">OFF</button>
							</td>
						</tr>	
					</table>
				</td>
				<td width=50px;> </td>
				<td>
					<table align="center" style="border:2pt solid red;"  >
						<tr>
							<td width=220px style="text-align:left;;padding-left:20px;border-bottom:none;height:50px;">La LED BLEUE est <span id="id-etat-ledb">-</span></td>
							<td style="text-align:left;" id="imageLedB"></td>
						</tr>
 
						<tr>
							<td width=300px style="text-align:center;border-top:none;" colspan=2 >
								<button class="bouton_on"  onclick="BoutonLED2on()">ON </button>
								<button class="bouton_off" onclick="BoutonLED2off()">OFF</button>
							</td>
						</tr>
					</table>
				</td>
			</tr>
		</table>
 
 
 
		<script type="text/javascript">
                
                function viewImage(id,etat) {
                document.getElementById(id).innerHTML=etat;
            }
 
                        function BoutonLED1on() {
                var xhttp = new XMLHttpRequest();
                xhttp.open("GET", 'consignes.php?E_LED1=1', true);
                xhttp.send();
            }
                        function BoutonLED1off() {
                var xhttp = new XMLHttpRequest();
                xhttp.open("GET", 'consignes.php?E_LED1=0', true);
                xhttp.send();
            }
                        function BoutonLED2on() {
                var xhttp = new XMLHttpRequest();
                xhttp.open("GET", 'consignes.php?E_LED2=1', true);
                xhttp.send();
            }
                        function BoutonLED2off() {
                var xhttp = new XMLHttpRequest();
                xhttp.open("GET", 'consignes.php?E_LED2=0', true);
                xhttp.send();
            }                   
 
                        //-------------------------------------------------------------------------------
                        /*Met à jour l'état des LEDs  toutes les 0.5 secondes */              
                        function MAJLedV() {
                                
                                const idTextLed1 = document.getElementById("id-etat-ledv"); // je défini l'endroirt du texte que je dois remplacer par son ID
                const requete_LEDV = new XMLHttpRequest();
                                requete_LEDV.open("GET", "/etatLED1.php", true);
                                requete_LEDV.send();
                                requete_LEDV.addEventListener("load", () => {
                                        idTextLed1.textContent = requete_LEDV.responseText
                                        if (requete_LEDV.responseText == "éteinte ")
                                                {
                                                        viewImage('imageLedV',"<img src='images/led_v_off.png'>");
                                                }
                                        else if (requete_LEDV.responseText == "allumée ")
                                                {
                                                        viewImage('imageLedV',"<img src='images/led_v_on.png'>");
                                                }
                                });
                        }                       
                        setInterval(MAJLedV, 500);  // je repete l'opération toute les 0.5 secondes
 
                        function MAJLedB() {
                                
                                const idTextLed2 = document.getElementById("id-etat-ledb"); // je défini l'endroirt du texte que je dois remplacer par son ID
                                const requete_LEDB = new XMLHttpRequest();  // Je créer un objet de type requete
                                requete_LEDB.open("GET", '/etatLED2.php', true);  // je constitue ma requete
                requete_LEDB.send();  // j'envoie ma requete            
                                requete_LEDB.addEventListener("load", () => {  // à la reception de la réponse du réponse, je remplace le texte
                                        idTextLed2.textContent = requete_LEDB.responseText // je remplace le texte par la réponse recue dans la requete
                                });
                                
                        }                                                               
                        setInterval(MAJLedB, 500);  // je repete l'opération toute les 0.5 secondes
                
                </script>
 
    </body>
</html>

Merci de m'avoir lu !

@Mathieu: j'ai pas réussis a passé en timeout au lieu de setintervall !