Autor | Zpráva | ||
---|---|---|---|
normanx Profil * |
#1 · Zasláno: 24. 6. 2012, 20:58:08
Ahoj, potřeboval bych poradit s jednou nejspíše začátečnickou radou. Mám stránku, kde mám několik checkboxů a potřeboval bych, aby když se na ní někdo vrátí (stránka bude pod heslem, takže bude chodit jen jeden uživatel) tak aby viděl naposledy zaškrkaná políčka. Našel jsem info o ukládání formulářových hodnot do souboru, ale nepodařilo se me to rozchodit u checkboxu a ještě navíc s znovunačtením.Díky za každou radu
|
||
Alphard Profil |
#2 · Zasláno: 24. 6. 2012, 21:17:24
Dotaz je příliš obecný. Ukažte aspoň kód, kterým ty checkboxy vypisujete.
|
||
normanx Profil * |
#3 · Zasláno: 24. 6. 2012, 23:06:43
No konkretně mě jde o tohle:
Na stránce jedna někdo zaškrká checkboxy....přejde na stranu dvě....tam taky nějaké zaškrkne....ale má možnost se vrátit na stranu 1 a tam nějake změnit...a teprve potom bude moci kliknout na ODESLAT a pak by se me odeslal soubor(hodnoty) do mailu. Ukladani hodnot cheskboxu jsem vyřešil tímto, ale nevím jak udělat to aby se mě při znovunačtení stránky načetly i předtím zašknuté boxy <? if($_GET["odeslano"]) { $soubor = fopen("text.txt", "w"); fwrite($soubor, $_GET["001"]); fwrite($soubor, $_GET["002"]); fwrite($soubor, $_GET["003"]); fclose($soubor); print "Soubor změněn."; } else {?> <form action="<?print $_SERVER["PHP_SELF"]?>"> 001<input type="checkbox" name="001" value="001"> 002<input type="checkbox" name="002" value="002"> 003<input type="checkbox" name="003" value="003"> <input type="hidden" name="odeslano" value="1"> <input type="submit"> </form> <?}?> |
||
LaMMa Profil |
#4 · Zasláno: 24. 6. 2012, 23:39:12
ukladaj to do cookies alebo session. Checkboxom daj meno, ktore bude pole a sprav si cyklus, kde pre kazdy checkbox ulozis ci bol odoslany do cookie(resp. session). Potom pri znovu nacitavani formulara iba skontrolujes ci je v cookie(session) oznaceny, ak ano, zaskrtnes ho.
|
||
normanx Profil * |
#5 · Zasláno: 24. 6. 2012, 23:57:04
LaMMa:
Jenže to právě nevím jak udělat, to co popisuješ... a není ukládání do souboru spolehlivější než pomoci cookies? |
||
LaMMa Profil |
Co presne z toho nevies? A ako by si v tom subore rozlisil, ktori uzivatel co ulozil? Ci tam mas ozaj len 1 uzivatela? Ak to chces ukladat natrvalo, tak do suboru, alebo este lepsie ukladat to do DB.
Zo suboru to skus nacitat takto nejak: $check = array(); $file = fopen("text.txt", "r") or exit("Unable to open file!"); while(!feof($file)) { $check[fgets($file)]=1; } fclose($file); <input type="checkbox" name="001" value="001" <?php echo (isset($check['001'])?'checked="checked"':'') ?>> |
||
normanx Profil * |
#7 · Zasláno: 25. 6. 2012, 01:07:37
Každý uživatel by měl unikátní zaheslovanou stránku, takže by to bylo jen pro jednoho uživatele a víceméně jednorázově, takže proto jsem se pustil prvně do toho souboru, hlavně bych to tam nějak sesmolil snad i s tím odesíláním mě na mail.
Teď jsem testoval to cookies pomocí tohoto : <?php if(isset($_COOKIE['FormData'])){ // Pokud COOKIE FormData existuje, přečteme její hodnotu. $hodnota=explode("#", $_COOKIE['FormData']); // Pomocí fce explode uložený řetězec rozložíme do pole // Nick byl uložen jako první. Pole se čísluje od 0 $exNick=$hodnota[0]; $exWeb =$hodnota[1]; $exMail=$hodnota[2]; } ?> <form action="gbook_zpracuj.php" method="post" name="formular"> <input type="hidden" name="backlink" value="<?php echo $_SERVER['REQUEST_URI']; ?>" /> <input type="hidden" name="sent_formular_gbook" value="" /> <input type="checkbox" name="nick" value="<?php if(isset($exNick)) {echo $exNick; } ?>" /> <input type="text" name="web" size="30" value="<?php if(isset($exWeb)) {echo $exWeb; } ?>" /> <input type="text" name="mail" size="30" value="<?php if(isset($exMail)) {echo $exMail; } ?>" /> <input type="submit" name="send" value="Přidej" accesskey="s" title="klávesová zkratka: alt+s" /> </form> funguje to dobře pro textové hodnoty, jen nevim jak to upravit u toho checkboxu. Aby mě to uchovávalo hodnotu zaškrknutý/nezaškrknutý. Navíc nevím jak bych tady udělal to, že bych odeslal všechny hodnoty zaráz třeba ze 4-5 stránek (ty by byly pro toho jednoho uživatele, takové členění otázek). U varianty se souborem, bych si jen poslal na mail upozornění že je to vyplněné a stáhl si soubor s hodnotama. |
||
LaMMa Profil |
#8 · Zasláno: 25. 6. 2012, 01:37:13
checkbox nema atribut value, ale nastavis mu, ci je checked. A nezabudni, ze ked je checkbox nezaskrtnuty, neodosle sa ti ani nazov toho checkboxu postom.
Navíc nevím jak bych tady udělal to, že bych odeslal všechny hodnoty zaráz třeba ze 4-5 stránek...bud to nacitas zo session, z cookie, z toho tvojho suboru, mozes si to davat ako skryte inputy do dalsich formularov, alebo spravis jeden velky formular a jeho casti budes javascriptom schovavat a odkryvat postupne(akoby si prechadzal medzi strankami) a odosles to vsetko naraz poslednym gombikom. |
||
Časová prodleva: 12 let
|
0