Arduino, ESP intégrer des valeur variable dans une page html

L’auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour

J’utilise un Esp12 pour afficher une page web HTML mais certaine valeur son variable.

Comme gérer proprement ceci.

Pour le moment en fouillant j’ai trouver la solution de creer un fichier qui créé des constante de mon code html :

const char HEADER_page[] PROGMEM = R"=====( 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bande Led</title>
</head>
<body>
<h1>Bande led</h1>
 
<form action="/" method="get">
  Puissance 0 à 255: <input type="text" name="puissance" value="
)=====";

const char FOOTER_page[] PROGMEM = R"=====( 
">
  <input type="submit">
</form>

</body>
</html>
)=====";

J’ajoute ma variable entre :

String msg = HEADER_page;
msg += brithness;
String msg = FOOTER_page;
server.send(200, "text/html", msg);

C’est pas mal mais sa ne fonctionne pas le serveur plante et redémarre.

Je doit mettre la partie footer en "direct" :

String msg = HEADER_page;
msg += brithness;
String msg = " \"><input type=\"submit\"></form></body></html>";
server.send(200, "text/html", msg);

Ce qui est très chiant car il faut mettre tout sur une ligne avec les anti-slash De plus pas facile pour maintenir le code.

Je cherche donc une autre solution ou a comprendre pourquoi avec 2 constantes sa passe pas.

Une idée ?

Je n’ai pas la solution mais j’admire le problème…

+0 -0
String msg = HEADER_page;
msg += brithness;
String msg = FOOTER_page;
server.send(200, "text/html", msg);

C’est autorisé ça ? À la ligne 3, la variable msg est redéfinie. Ce qui dans certains langages devient un masquage, mais là, j’y crois pas trop, en C et C++ c’est une erreur.

Tu peux trouver un tutoriel sur le langage C sur ZdS justement ^^

Je pense que tu voulais faire :

String msg = HEADER_page;
msg += brithness;
msg += FOOTER_page;
server.send(200, "text/html", msg);

Édité par ache

ache.one                 🦹         👾                                🦊

+0 -0
Auteur du sujet

Oui c’est une faute de frappe il n’y a pas String a la ligne 3…

J’ai trouvé une solution un peu comme un templatte en faite :

String msg = HEADER_page;
msg.replace("{{PUISSANCE}}", String(brithness));
server.send(200, "text/html", msg);

Je met donc les variables entre double accolade dans mon fichier html.

Édité par Nozziak

Je n’ai pas la solution mais j’admire le problème…

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte