21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
Jim
Profil *
Prosím Vás o radu. Mám formuláč a potřeboval bych při odeslání a novém otevření načíst z uložené cookie údaje zpět do formuláře aby je nemusel uživatel znovu vyplňovat. Zkoušel jsem něco podle návodů na webu, ale úspěchu jsem nedosáhl. Dík.
Leo
Profil
Na to je idealni skriptovani na serveru (treba session v PHP), Leo
Yuhů
Profil
To je lepší dělat v PHP:

pokud budeš mít formulář a v něm <input name="jmeno" ...>,
tak při odesílání formuláře tím skriptem, který bude stránku zpracovávat, nastavíš kukinu

<?php
setcookie("jmeno", $_GET["jmeno"], mktime(0,0,0,1,1,2007));
?>

po opětovném načtení stránky s formulářem (která musí být také v PHP, si uložíš hodnotu cookie do proměnné:
<?php
$jmeno_z_kukiny =(isset($_COOKIE['jmeno'])?$_COOKIE['jmeno']:'');
?>

a vyskládáš ten input pomocí PHP:

<input name="jmeno" value="<?php echo $jmeno_z_kukiny ?>">



Javascriptem, pokud nemůžeš použít PHP, je to poněkud složitější. Cookie uložíš při odeslání formuláře

<form onsubnit="ulozitCookie()" ...>
<input name="jmeno" id="jmeno">
...

<script>
function ulozitCookie(){
document.cookie = "jmeno=" + document.getElementById("jmeno").value + "; expires =Sun, 17-Jan-2038 19:14:07 GMT;path=/;"
}
</script>

Malá pozámka k ukládání cookie: je to prasácké, v praxi samozřejmě je třeba lépe. Javascript dělá to, že si v dokumentu najde dané políčko, přečte si hodnotu a uloží ji do cookie jménem jmeno (nastaveno natvrdo). Platnost cookie je do skonání světa, tedy do roku 2038, v praxi se dá nastavit něco jiného. Path zaručuje, že cookie bude fungovat na celé doméně, ale kdyby to nefungovalo, tak se za to ještě dá připsat domain.

Teď, jak tu cookie javascriptem přečíst:

<form onsubnit="ulozitCookie() // nyní nepodstatné" ...>
<input name="jmeno" id="jmeno">

<script type="text/javascript">
// funkce na rozkuchání kukin
function hodnotaKukiny(nazevKukiny){
kukiny = document.cookie.split(";"); // rozřezávám řetězec kukin do pole
for (i in kukiny){ // procházím pole kukin
jednaKukina = kukiny[i].split("="); // rozřezávám kukinu do dvouprvkového pole
if (jednaKukina[0] == nazevKukiny) hodnota=jednaKukina[1]; // jestliľe je to ta pravá kukina, vybírám její hodnotu z druhé poloľky pole za rovnítkem
return hodnota;
}
}

// naplnění příslušného políčka

document.getElementById("jmeno").value = hodnotaKukiny("jmeno");
</script>


Ani jeden příklad netestován! Hm, jejda, jak to tak po sobě čtu, to jsem z toho rovnou mohl udělat stránku o cookies. Tu ještě nemám.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0