Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

ESP8266 - Ovladaní přes web.
Jdi na stránku Předchozí  1, 2
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Miniaturní počítače (Arduino, Raspberry a další)
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Le_Ze



Založen: Jul 24, 2014
Příspěvky: 655
Bydliště: Ano, mam

PříspěvekZaslal: út květen 19 2020, 10:12    Předmět: Citovat

I když mi trochu trvalo než jsem přišel na to jak to v te ESP8266 funguje a jak to odchytit, je to funkční Very Happy
Děkují. Number one
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Le_Ze



Založen: Jul 24, 2014
Příspěvky: 655
Bydliště: Ano, mam

PříspěvekZaslal: út květen 19 2020, 14:50    Předmět: Citovat

By byl dalši dotaz. Co je špatně?

kód:

<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:

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/esp8266-receive-post-get-request-data-from-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”);
citace:
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
FHonza



Založen: Nov 20, 2012
Příspěvky: 1453
Bydliště: Praha

PříspěvekZaslal: út květen 19 2020, 21:23    Předmět: Citovat

Na tom není nic špatně, chová se to jak má. Po stisku tlačítka dojde k načtení stránky uvedené v atributu action v tagu form. Jestli jako odpověď posíláš stále stejné html, tak prostě nic zaškrtnuté nebude.

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Le_Ze



Založen: Jul 24, 2014
Příspěvky: 655
Bydliště: Ano, mam

PříspěvekZaslal: st květen 20 2020, 6:18    Předmět: Citovat

To že načitam stranku znovu jsem pochopil, ale nějak nechapu toto.
Ten script co jsi mi tu dal odesila GET
GET /zpracovani?vehicle1=1
Tedy takto.
kód:
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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
FHonza



Založen: Nov 20, 2012
Příspěvky: 1453
Bydliště: Praha

PříspěvekZaslal: st květen 20 2020, 11:46    Předmět: Citovat

Ten příklad, který jsem dával naposled, neposílá obsah tagu form pomocí submit. Takže díky tomu se stránka v prohlížeči nenačte znovu. Tlačítko submit neresetuje stránku, dojde k jejímu novému načtení ze serveru (ESP). Správné řešení by bylo načítat ze serveru správný obsah stránky. Tj. do posílaného HTML doplnit stavy checkboxů. Když to takhle neuděláš, tak vzápětí narazíš na další problém: při prvním zobrazení stránky nemusí stav checkboxů odpovídat reálnému stavu relé.

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 Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pocitujlasku



Založen: Dec 12, 2005
Příspěvky: 2168

PříspěvekZaslal: st květen 20 2020, 13:03    Předmět: Citovat

este je tu jedna moznost, nieco medzi tym. dat ciste html, kde by sa js posielal ajaxom kazdu sekundu request, ktory by v jednoduchej forme vracal stavy. a potom uz len nastavit checkbox a pripadne aj farbu podla stavu. a rovnako by sa cez ajax odosielala zmena.
je to male, a mas do sekundy aktualny stav, ak by napr rele spinal niekto z ineho pocitaca.

_________________
No vidis, a tak si sa bal
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Miniaturní počítače (Arduino, Raspberry a další) Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2
Strana 2 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.24 sekund