Děkují.
ESP8266 - Ovladaní přes web.
Moderátor: Moderátoři
Kód: Vybrat vše
<form action="/index.php">
<input type="radio" id="R1" name="Rele" value="Rele1">
<label for="R1">Rele1</label><br>
<input type="radio" id="R2" name="Rele" value="Rele2">
<label for="R2">Rele2</label><br>
<input type="radio" id="R3" name="Rele" value="Rele3">
<label for="R3">Rele3</label><br>
<br>
<input type="submit" value="Submit">
</form>Kód: Vybrat vše
void handleForm() {
String radio = server.arg("Rele");
Serial.println(radio);
server.sendHeader("Location", "/");
server.send(302, "text/plain", "Updated-- Press Back Button");
delay(500);
}Funguje to.
Na ser. monitor se vypisuje value zaškrtnuteho radio.
Když ale zaškrtnu nějake radio a klknu na button, resetuje se mi stranka a všechny radio jsou prazdne.
https://circuits4you.com/2019/03/20/esp ... m-website/
Uplně dole.
Q1. Is it possible to stay on same page after pressing button?
ANS: Yes it is possible using server.sendHeader. Add these lines at the bottom of action page handler function.
server.sendHeader(“Location”, “/”);
server.send(302, “text/plain”, “Updated– Press Back Button”);[quote][/quote]
jak už jsem psal, zapni si v prohlížeči nástroje pro vývojáře. Pak se podívej na komunikaci prohlížeče a serveru. Bude ti to hned jasné.
Edit: a nějak mi není jasné, proč by se mělo změnit toto chování při použití dočasného přesměrovaní v hlavičce.
Ten script co jsi mi tu dal odesila GET
GET /zpracovani?vehicle1=1
Tedy takto.
Kód: Vybrat vše
void handle_zpracovani() {
//String message = server.arg("vehicle1");
//Serial.println(message);
if (server.hasArg("vehicle1"))
{
String message = server.arg("vehicle1");
Serial.println(message);
}
server.sendHeader("Location", "/");
server.send(302, "text/plain", "Updated-- Press Back Button");
delay(500);
} Toto take načita tu stranku znovu a mužu zaškrtnout všechny checkboxy.Proč?
Až po kliknuti na Submit se vše vyresetuje.
To pak je lepši pořešit vše přes JavaScript.
Dá se to řešit dvěma způsoby:
• u jednoduchých projektů generovat správné HTML (tento případ)
• u složitých projektů to dělám tak, že mám statický obsah stránky uložen v SPIFFS. Po jejím načtení prohlížečem (např. událost onLoad tagu body) načtu správný stav elementů. Díky tomu je velmi dobře oddělen vzhled stránky od jejího obsahu a pro změnu vzhledu není nutné překládat a nahrávat nový program do ESP.
Důležité je si uvědomit, že HTTP protokol neudržuje nikdy spojení mezi serverem a prohlížečem. Vždy je to dotaz a odpověď. Prostě je to bezestavový protokol se všemi (ne)výhodami. Ale jak už jsem psal, začni používat nástroje pro vývojáře, ulehčí ti to život
- pocitujlasku
- Příspěvky: 2764
- Registrován: 12 pro 2005, 00:00
- Bydliště: SR, Poprad
je to male, a mas do sekundy aktualny stav, ak by napr rele spinal niekto z ineho pocitaca.