Okno pro licenční podmínky na webové stránce
Někdy potřebujeme potvrzení uživatele o tom, že souhlasí s našimi podmínkami. Z instalačních programů známe okno, ve kterém jsou zobrazeny licenční podmínky a pod nimi zatrhávací políčko pro potvrzení souhlasu. Dole je potom tlačítko pro pokračování, které je do okamžiku, než zatrhneme souhlas, nedostupné.
Pro naši aplikaci použijeme formulář. Zde totiž můžeme použít pole textarea, do kterého přímo vypíšeme naše podmínky. Nelze sice použít formátování textu, ovšem pro náš účel to není nutné. Výhodou je, že nemusí být ve stránce celé podmínky najednou, rozměry pole si libovolně nastavíme a zobrazený text podmínek lze v poli rolovat, a to ve všech prohlížečích. Ve vlastnostech pole textarea můžeme nastavit také atribut readonly (ve většině prohlížečů nebude možné údaje editovat) a wrap="virtual" (flexibilní zalamování textu).
Pod textové pole umístíme zatrhávací políčko, které bude obsluhovat JavaScript ve stránce. Jeho hodnota by se měla testovat i v PHP skriptu, který obsluhuje náš formulář.
Nakonec si přidáme libovolný počet tlačítek pro pokračování po souhlasu s podmínkami. Každé tlačítko bude mít výchozí vlastnost disabled, takže nebude ihned po zobrazení stránky dostupné. V některých starších prohlížečích je tato vlastnost ignorována, proto je potřeba s tím počítat ve funkci obsluhující zatrhávací políčko.
Obslužný skript bude testovat stav zatrhávacího políčka a při zatržení změní vlastnost všech tlačítek, která jsou typu submit na enabled. V prohlížečích, které to nepodporují, bude alternativně stornováno odeslání formuláře a pomocí alert bude zobrazeno hlášení o nutnosti souhlasu s podmínkami. Výhodou je, že můžeme přidat více odesílacích tlačítek s různými funkcemi, aniž bychom museli zvlášť zasahovat do obslužného skriptu. Viz ukázka.
Stránka rules.htm:
|
Za zmínku ještě stojí použití metody post pro odeslání formuláře. Metoda post přenášená data nepředává do řetězce URL. Tím zabráníme uživatelům, aby si chráněnou stránku uložili například do oblíbených odkazů v podobě přímého odkazu.
Z formuláře se odešle pouze hodnota zatrhávacího políčka a těch tlačítek, u kterých uvedeme atribut name. Pole textarea není pojmenované, takže se jeho obsah neodesílá. Je úlohou zpracovávajícího skriptu, aby otestoval hodnotu proměnné zatrhávacího políčka (v našem příkladu rulesagree). Pokud jeho hodnota není rovna 1 (true), měl by zobrazit upozornění na nutnost souhlasu s podmínkami a případně ještě odkaz na příslušný formulář.
V PHP by to bylo například takto:
|
Tuto jednoduchou aplikaci si můžete stáhnout i s ukázkou obslužného skriptu pro PHP.