Wifi zásuvka

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Odpovědět
Uživatelský avatar
kiRRow
Příspěvky: 1164
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Wifi zásuvka

Příspěvek od kiRRow » 14 kvě 2020, 15:56

Nejprve si uprav ty buttony
<button type="submit" name="tlacitko" value="1">Zhasnout</button>

$mysqli = mysqli_connect($server, $user, $pass, $db); //připojení k MySQL
//zde pak testujes jestli je tlacitko == 1 - došlo k odeslání formuláře a ne jen k načtení stránky
// pokud je tlacitko == 1 tak zapíšeš hodnotu stav do databáze a pokračuješ dál
$sql = 'SELECT * FROM arduino_data WHERE modul="led"'; // tady už se ti načte nová hodnota

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Wifi zásuvka

Příspěvek od KamilV » 14 kvě 2020, 15:59

Kony píše:
14 kvě 2020, 14:18
ale taky to nic neudělá, prostě to do té DB nezapíše 1 a tlačítko tam pořád zůstavá Rozsvítit,ale když tak na to koukám a přemýším na to, tak tento kod jen zobrazí tlačítko dle stavu, ale změnu stavu to udělat nemůže
Přesně tak. Vždy musíš říct, co řešíš. Řešil jsi vykreslení tlačítka, nepochopil jsem z toho, že obsluhu formuláře nemáš.
Tedy: teď se tě vykreslí správný formulář a v hidden inputu máš novou hodnotu, u toho formu si dej do action nějaký skript, který tu hodnotu updatne v db a udělá redirect zpět na výpis s tlačítkem. To už se zobrazí v opačném stavu.

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Wifi zásuvka

Příspěvek od KamilV » 14 kvě 2020, 16:02

kiRRow píše:
14 kvě 2020, 15:56
Nejprve si uprav ty buttony
<button type="submit" name="tlacitko" value="1">Zhasnout</button>

$mysqli = mysqli_connect($server, $user, $pass, $db); //připojení k MySQL
//zde pak testujes jestli je tlacitko == 1 - došlo k odeslání formuláře a ne jen k načtení stránky
// pokud je tlacitko == 1 tak zapíšeš hodnotu stav do databáze a pokračuješ dál
$sql = 'SELECT * FROM arduino_data WHERE modul="led"'; // tady už se ti načte nová hodnota
Tahat tu hodnotu ve value submitu není best practice, protože ve chvíli, kdy těch hodnot bude chtít více, do submitu je nenacpe, hiddenů může mít kolik chce.

Dále není úplně šťastné vykonávat obsluhu formu ve stejném skriptu, jako je výpis. Při obnovení výpisu se bude chtít znovuodeslat formulář.
Zažitá praxe je, že se form odešle na nějaký skript s aplikační logikou, udělá co je potřeba a přesměruje na URL s prezentační vrstvou. Na výpisu pak můžeš mačkat F5 jak chceš, ale form se znovu neodešle...

Uživatelský avatar
kiRRow
Příspěvky: 1164
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Wifi zásuvka

Příspěvek od kiRRow » 14 kvě 2020, 16:09

Hodnota je v hiddenu ... v button value je hodnota toho, že tento button byl stisknut, aby se zápis prováděl pouze při odeslání formuláře a né při jakémkoliv načtení stránky.

Kony
Příspěvky: 382
Registrován: 09 dub 2020, 11:43
Reputation: 0

Re: Wifi zásuvka

Příspěvek od Kony » 14 kvě 2020, 16:28

Takze z toho zase vim prd hihi

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Wifi zásuvka

Příspěvek od KamilV » 14 kvě 2020, 16:30

Jo takhle, no tak i to se dá poznat z isset($_POST['hodnota']), tedy z toho hiddenu.
Value u submitů se používá ve chvíli, kdy jich má form více (typicky "Uložit", "Uložit a zpět") a skript pak reaguje podle toho, kterým tlačítkem bylo odesláno.

No ale hlavně bych se držel toho, aby aplikační logika byla v samostatném skriptu, takže vlastně celý tento příspěvek je zbytečný :mrgreen:

Kony
Příspěvky: 382
Registrován: 09 dub 2020, 11:43
Reputation: 0

Re: Wifi zásuvka

Příspěvek od Kony » 14 kvě 2020, 18:39

Uz si s tim hraju pekne dlouho a stejne neprijdu na to jak udelat aby to fungovalo vcetne zmen tech hodnot v DB

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Wifi zásuvka

Příspěvek od KamilV » 14 kvě 2020, 19:41

Nějakých 6 h, to není žádnej zásek :mrgreen: Dokud v sobě nemáš 3 turky a za oknem se znovu nerozednilo, žádný programátorský problém jsi neřešil :lol:

Ale teď vážně. A jako vždy. Ukaž co máš.

Kony
Příspěvky: 382
Registrován: 09 dub 2020, 11:43
Reputation: 0

Re: Wifi zásuvka

Příspěvek od Kony » 14 kvě 2020, 20:39

Vzdy neco zkusim a kdyz nejde tak umazu, snazim se nejak pracovat z sql prijazem,

$sql = 'UPDATE * FROM arduino_data WHERE modul="led"' VALUE ="1";
$doSql = $mysqli->query($sql);

Ale asi to spatne formuluju a nebo to spatne zadavam do toho prijazu na click buttonu

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Wifi zásuvka

Příspěvek od KamilV » 14 kvě 2020, 21:27

Hm, a jak bys takový dotaz lidsky přečetl?
"Uprav všechno z arduino_data, pokud modul je led hodnota je 1"

Úplně to není košér, že?
Nechtěl bys spíš něco ve smyslu:
"Uprav arduino_data tak, že sloupec hodnota je 1, pokud modul je led"?

Kód: Vybrat vše

$sql = 'UPDATE arduino_data SET hodnota='.(int)$hodnota.' WHERE modul="led"';

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 10 hostů