Autor Zpráva
normanx
Profil *
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
Dotaz je příliš obecný. Ukažte aspoň kód, kterým ty checkboxy vypisujete.
normanx
Profil *
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
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 *
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);
potom pri checkboxoch daj:
<input type="checkbox" name="001" value="001" <?php echo (isset($check['001'])?'checked="checked"':'') ?>>
normanx
Profil *
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: