DOPORUČUJEME:    Poeta.cz, MůjCitát chcete tu mít svůj odkaz ?Web není v současnosti aktualizován
Zpět na index Můjscriptu
 Přiřazovací operátory   Řetězcové operátory   Speciální operátory   Pohyblivé menu  Článků: 95; Příkladů: 64
Právě nás čte 1 člověk
 Hlavní nabídka:
Základy
Základy
Proměnné
Funkce
Větvení
Dialogová okna
Cyklus
Události
Uživatelská okna
Datum a čas
Formuláře
Obrázky
Matematické funkce
Cookies
Kompatibilita
Reference
Základy
Objekty
Ostatní
Operátory
Příklady
1-5
6-10
11-15
16-20
21-25
26-30
31-35
36-40
41-45
46-50
51-55
56-60
61-65
Nastavit jako homepage Přidat k oblíbeným
 Podsekce MůjScriptu:
Tvůrčí tým
Napsali nám
Guestbook
 Náš Webtip:
Poeta.cz - server nejen o poezii
MůjCitát - server o citátech
 Nenechte si ujít:
Řešení nekompatibility na jedné stránce
Objekt navigator
Cookie manipulátor
Využití cookies ve formulářích
Počítadlo návštěv jednoho člověka na dané stránce
Faktoriál
Animace obrázků
Záměna více obrázků
Záměna dvou obrázků
Kontrola údajů ve formuláři
Přístup k prvkům formuláře pomocí pojmenování
Přístup k prvkům formuláře pomocí pořadových čísel
window.clearTimeout()
Načasování v JavaScriptu
Operace s časovými údaji
Datum a čas - začínáme
Stavový řádek
Vytvoření nové stránky
Ovládač události onDblClick
Ovládač události onClick
Ovládač události onUnLoad
Ovládač události onLoad
Příkaz continue
Příkaz break v cyklech
Příkaz for
Příkaz while
Příkaz do while
Vstupní okno
Potvrzovací okno
Výstražné informační okno
Logické operátory
Příkaz switch
Podmínka if else (2)
Podmínka ? :
Funkce - začínáme 2
Funkce - začínáme
Pole v praxi
Proměnné v praxi
Základní aritmetické operátory
Kam se scripty? Jaká je správná základní syntaxe JS?
JavaScript - co to je?
Využití cookies ve formulářích

Další oblast, kde lze cookies využít jsou formuláře. Dnes si to ukážeme názorně.

Cookies jde ve formulářích použít jako jakési skladiště dat. Nejde však tyto data pomocí JS shromažďovat. Jednotlivý návštěvnici je budou mít uloženy v prohlížečích. Ale už názorně:

<HTML>
<HEAD>
<TITLE>Využití cookies ve formulářích</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function prectiCookie(nazev)
{
obsah=document.cookie; upravene=obsah.split(';');
velikost=upravene.length; kusy=""; vrat="";

for (x=0;(x<velikost && vrat=="");x++)
{
kusy=upravene[x].split('=');
if (kusy[0].substring(0,1)==' ')
kusy[0]=kusy[0].substring(1,kusy[0].length);
if (kusy[0]==nazev) vrat=kusy[1];
}
if (vrat) return unescape(vrat);
else return false;
}

function zapisCookie(nazev,hodnota,vyprsi)
{
datum=new Date();

if(vyprsi) {
datum.setTime(datum.getTime()+vyprsi);
document.cookie=nazev+"="+escape(hodnota)
+"; expires="+datum.toGMTString(); }

else document.cookie=nazev+"="+escape(hodnota);
}

function zapis()
{
with (document)
{
for (p=0;p<form1.elements.length-1;p++)
zapisCookie("id"+p,form1.elements[p].value,doba_platnosti);
zapisCookie("idpocet",form1.elements.length-1,doba_platnosti);
}
location=this.location;
}

function vypln_form()
{
with (document)
{
write('<FORM NAME="form1" onSubmit="zapis();">');
write('Jméno: <INPUT TYPE="text"><BR>');
write('Příjmení: <INPUT TYPE="text"><BR>');
write('E-mail: <INPUT TYPE="text"><BR>');
write('Věk: <INPUT TYPE="text"><P>');
write('<INPUT TYPE="submit" VALUE="Zapiš">');
write('</FORM>');
form1.elements[0].focus();
}
}

function zobraz_form()
{
pocet_prvku=prectiCookie("idpocet");
with (document)
{
write('<B>OBSAH FORMULÁŘE:</B><BR>');
for (p=0;p<pocet_prvku;p++) write(prectiCookie("id"+p)+"<BR>");
write('<BR><A HREF="javascript:location=this.location">Reload stránky');
write('</A><BR><A HREF="javascript:zapisCookie(\'idpocet\',\'\');">');
write('Vynuluj formulář</A>');
}
}
// -->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
doba_platnosti=864000000;
idpocet=prectiCookie("idpocet");

if (!idpocet) vypln_form();
else zobraz_form();
// -->
</SCRIPT>
</BODY>
</HTML>


Pro výsledek klikněte ZDE.

Vysvětlení činnosti:
V tomto příkladu jsme použili opět funkce prectiCookie() a zapisCookie(). Vysvětlíme si tedy jen to, co jsme si ještě nevysvětlili. A to argument vyprsi ve funkci zapisCookie(). Pokud tedy bude tento argument při vyvolávání této funkce zapsán, vyvolá se podmínka if. Ta při zadání hodnoty pro tento argument nastaví dobu (pomocí syntaxe datum.setTime) na aktuální dobu plus čas udaný v milisekundách v argumentu funkce (pomocí syntaxe datum.getTime()+vyprsi). Když vyprsi nemá určenou hodnotu pokračuje zpracování za else (uloží název a zakodovanou hodnotu cookie). A nyní už se zaměříme na nové funkce. V dnešním příkladu to jsou zapis(), vypln_form() a zobraz_form(). První funkce bude sloužit k ošetření zápisu cookie pomocí funkce zapisCookie(). Jelikož počet prvků nebude přesně dán, musíme dynamicky měnit název. K tomu použijeme podmínku for. Ta vyvolá funkci zapisCookie() tolikrát, kolik je prvků ve formuláři. Ale pozor! Protože tlačítko pro odeslání je také formulářovým prvkem, zmenšíme tento počet o 1. Počet prvků ve formuláři zjistíme syntaxí form1.elements.length-1. Hodnotu daného prvku zjistíme pomocí syntaxe form1.elements[p].value, kde p se bude díky podmínce for dynamicky měnit. Pak také budeme chtít zapsat počet cookie, které zapíšeme. K tomu už nepotřebujeme nic upravovat. Jako název zadáme idpocet a hodnota bude již zmiňovaný počet prvků. Do argumentu vyprsi zadame proměnnou doba_platnosti, která bude pak zadána. Funkce vypln_form() slouží k vypsání formuláře, do kterého bude uživatel zadávat jednotlivé hodnoty. V tomto formuláři jsme použili ovládač událostí onSubmit, který vyvolá funkci zapis(). V této funkci je k nepochopení jen snad část form1.elements[0].focus(), která aktivuje pohled na první prvek formuláře. Poslední funkcí je zobraz_form(), která slouží k zobrazení obsahu, již vyplněného, formuláře. Ta opět pomocí podmínky for vypíše jednotlivé názvy cookie a k nim zobrazí příslušné hodnoty. Použijeme funkci prectiCookie. Ta bude díky podmínky for aktivována tolikrát, dokud p nedosáhne počtu prvků. Díky proměnné pocet_prvku, které jsme přiřadili zjištění hodnoty od cookie idpocet (viz výše). Možná trochu zmatečným by se mohlo zdát několik lomítek v odkazu pro vymazání cookies. Ale je to jednoduché, jedná sekvence \' nahrazuje ". Ale pozor! Cookies se nesmažou. Pouze se nahradí hodnota cookie idpocet na prázdnou. Ostatní cookies v prohlížeči zůstanou dokud jim nevyprší doba platnosti nebo dokud nebudou přepsána. Chcete vědět proč může být nahrazení hodnoty cookie idpocet na prázdnou dobré? Pak čtěte dál. V poslední části příkladu přiřazujeme proměnné doba_platnosti velké číslo :o) Toto číslo je vyjádřením 10 dnů v milisekundách. Následně proměnné idpocet získáváme hodnotu cookie idpocet. A zde už je rozluštění záhady mazání. Díky podmínce if, která zjišťuje jestli proměnná idpocet, potažmo cookie idpocet, má nějakou hodnotu, vyvolá funkci vypln_form() nebo zobraz_form(). Toť vše.

11.05.2002 | Cookies | David Havlíček
Dnes je 19. 05. 2024
Svátek má Ivo
 Kontakty na nás
ICQ: 108078007
muj-script@poeta.cz
mongi@centrum.cz
 Bleskové aktuality:
10.12.2002 Dlouho jsme tu neměli příklady, tak co kdybychom si dneska jeden dali?
07.12.2002 Poslední operáty, které si představíme, jsou speciální.
02.12.2002 Po delší pauze si představíme další operátory - řetězcové.
17.11.2002 Next operátory jsou přiřazovací.
10.11.2002 Jedněmi z posledních operátorů jsou porovnávací.
02.11.2002 Už jste slyšeli o logických operátorech? Pár jich taky je.
29.10.2002 Dalšími operátory jsou bitové.
26.10.2002 Dnes si představíme první z řady operátorů - aritmetické operátory.
24.10.2002 Další částí referencí jsou příkazy.
18.10.2002 Dnes se mrkneme na referenční přehled funkcí.
12.10.2002 Window je objekt, který má snad nejvíce metod a vlastností, tak se mu dnes podíváme na zoubek.
06.10.2002 Netradičně v neděli další objekt - string.
28.09.2002 Další sobota. Další objekt - screen.
21.09.2002 Hodně používáný je objekt navigator. Proto se na něj dneska zaměříme.
14.09.2002 Po týdenní pauze další referenční článek o objektu - tentokrát Math.
07.09.2002 Objekt location bude náš dnešní cíl.
04.09.2002 Na paškál si tentokrát vezmeme objekt history.
 Aktuální články:
Speciální operátory
Řetězcové operátory
Přiřazovací operátory
Porovnávací operátory

Copyright © 2001-2004 David Havlíček, design:Vít Dlouhý
Všechna práva vyhrazena (R)
Šíření článků, bez souhlasu redakce je výslovně zakázáno!