Nejste přihlášen/a.
Dobrý den, na webu mám zaškrtávácí tlačítko CHECKBOX. Potřebuju, aby po jeho zaškrtnutí a stiknutí tlačítka odeslat, zůstal zaškrtnutý. Na vždy. Tedy dokud ho zase nerestartuji. Bylo mi řečeno, že by to mělo jít pomocí sessions nebo cookies, ale zkoušel jsem to několika způsoby a pokaždé je tlačítko zaškrtnuté jen do obnovení stránky. Prosím vás o pomoc. Nejlepší by bylo, kdyby mi někdo mohl upravit ten kód.
No tohle ale máte jen klientskou část, "pohled" v prohlížeči nebo jak tomu chcete říkat. Chybí vám serverová logika. A jelikož mi php nic neříká, můžu vám to napsat jen obecně, ne konkrétní příkazy. Obsah souboru skript.php (pokud tedy ta stránka odesílá formulář sama sobě):
Zkontroluju request.cookies(název cookie)(název proměnné), jestli je už nastaven stav tlačítka. Pokud ano, uložím ho do proměnné.
Zkontroluju typ příchozího requestu, pokud je POST, zpracovávám formulář, vemu z něj tedy všechny položky podle názvu, dám je do proměnných, udělám s nimi xyz (to je na vás, k čemu ten formulář je). Tlačítko uložím do proměnné (přepíšu hodnotu, která byla v cookies, pokud tam byla).
Pokud ani teď stále není nastavena proměnná s hodnotou tlačítka (tedy uživatel ani nemá cookies, ani neodesílá formulář, je tedy na stránce úplně poprvé), nastavím proměnnou na výchozí hodnotu.
K odpovědi přiřadím odpovídající response.cookies, aby se hodnota tlačítka odeslala prohlížeči.
Vykreslím stránku, tedy vypíšu html head body, ten formulář atd. V místě, kde jsem uvnitř input checkbox tagu, se kouknu, jaká je hodnota proměnné, a podle toho vypíšu nebo nevypíšu checked="checked".
Se session to uděláte úplně stejně, jen místo čtení a zápisu do cookies budete číst a zapisovat do session.
Jinak oba případy nejsou "nafurt", session skončí 20 minut po posledním requestu a pak se to zapomene. Po vypršení (dobu jejich platnosti si nastavíte vy) nebo smazání cookies v prohlížeči se to taky zapomene.
Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.
Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.