Zpracování formulářů pomocí ASP

16. května 2000

Ve článku „Kurz HTML – formuláře pro každého“ jste zjistili, jak vytvářet formuláře na HTML stránkách. Nyní vám přinášíme návod, jak data z formulářů zpracovat pomocí ASP.

Jak jistě víte z předcházejího článku o formulářích je formulář tvořen pomocí párových tagů <FORM>  </FORM>mezi kterými jsou uvedeny jednotlivé prvky formuláře.

Údaje z formuláře lze předat ke zpracování dvěmi způsoby. První způsob je předání pomocí metody GET při kterém se parametry předávají jako součást URL. Druhý způsob je předání dat pomocí metody POST, kdy jsou data poslána kódovaně serveru ke zpracování. To jaká metoda bude ke zpracování použita určuje atribut „method“ v tagu <FORM>. Dalším velice důležitým atributem pro zpracování je atribut „action“, který určuje jméno scriptu, který bude použit pro zpracování dat z formuláře.

<FORM action=“zpracujform.asp“ method=“POST“>
<INPUT type=“submit“ value=“Submit“>
</FORM>

V uvedeném příkladu budou data odeslána pomocí metody POST a zpracuje se script, který se jmenuje „zpracujform.asp“

Metoda GET

Při použití metody GET jsou údaje z formuláře předány jako součást URL. Po odeslání je URL dokumentu doplněno o data předaná z formuláře. Data jsou umístěna v URL za jménem scriptu doplněném o otazník a jsou předána ve tvaru „nazev=hodnota“. V případě většího počtu položek ve formuláři jsou jednotlivé položky odděleny pomocí znaku &.

Povšimněte si údaje #form1 v atributu action. Tento údaj způsobí, že po zpracování ASP je skočeno na místo, které je označeno pomocí tagu <a name=form1>.

<FORM action=“zpracujform.asp#form1″ method=GET id=form1 name=form1>
<INPUT type=“hidden“ name=form value=“1″>
Jméno:<INPUT type=“text“ name=jmeno><br>
Příjmení:<INPUT type=“text“ name=prijmeni><br>
<INPUT type=“submit“ value=“Submit“ id=submit2 name=submit2>
</FORM>

A jak tento formulář zpracujeme? Zcela jednoduše. Objekt Request má metodu QueryString, která slouží pro přečtení jednotlivých hodnot z příkazové řádky. Jako parametr metody se uvádí jmnéno položky, kterou chceme zpracovat.

hodnota_polozky=Request.QueryString(„polozka“)

Na závěr povídání o metodě GET uvádím kód pomocí něhož je zpracován formulář 1.

<%
if Request.QueryString(„form“)=1 then
   if len(Request.QueryString(„prijmeni“))=0 and len(Request.QueryString(„jmeno“))=0 then
      response.write(„Formulář nebyl vyplněn“).
   else
      response.write(„Ve formuláři 1 bylo vyplněno „&Request.QueryString(„jmeno“)&“ „&Request.QueryString(„prijmeni“)
   end if
else
response.write(„Formulář nebyl odeslán“)
end if
%>

Položka se jménem „form“ je položka skrytá uživatel ji tudíž nevidí a nevyplňuje. Když se ale podíváte do URL zjistíte, že se hodnota položky odeslala. Této možnosti můžete využít třebas pro zpracování rozsáhlých formulářů pro přenos údajů, které uživatel již vyplnil. Více o rozsáhlých formulařích se dozvíte zde

Metoda POST

Při použití metody POST jsou předávaná data poslána kódovaně serveru. Povšimněte si údaje #form2 v atributu action. Tento údaj způsobí, že po zpracování ASP je skočeno na místo, které je označeno pomocí tagu <a name=form2>. Na rozdíl od metody GET nejsou v URL uvedeny data, která jste vyplnili.

<FORM action=“#form2″ method=POST id=form2 name=form2>
<INPUT type=“hidden“ name=form value=“2″>
E-mail:<INPUT type=“text“ name=mail><br>
Jméno a příjmení:<INPUT type=“text“ name=prijmeni><br>
<INPUT type=“submit“ value=“Submit“ id=submit2 name=submit2>
</FORM>

A jak tento formulář zpracujeme? Zcela jednoduše. Objekt Request má metodu Form, která slouží pro přečtení jednotlivých hodnot zaslananých formulářem serveru. Jako parametr metody se uvádí jmnéno položky, kterou chceme zpracovat.

hodnota_polozky=Request.form(„polozka“)

Na závěr povídání o metodě POST uvádím kód pomocí něhož je spravován formulář 2.

<%
if Request.form(„form“)=1 then
   if len(Request.form(„prijmeni“))=0 and len(form.QueryString(„jmeno“))=0 then
      response.write(„Formulář nebyl vyplněn“).
   else
      response.write(„Ve formuláři 1 bylo vyplněno „&Request.form(„mail“)&“ „&Request.form(„prijmeni“)
   end if
else
response.write(„Formulář nebyl odeslán“)
end if
%>

Zpracování rozsáhlých formulářů

Při použití rozsáhlých formulářů je lépe, když formulář pro snadnou orientaci uživatele rozdělíte na několik menších formulářů. Jak ale tyto formuláře „na pokračování“ snadno a efektivně zpracovat?

Pro zpracování těchto formulářů se přímo nabízejí šest možných způsobů zpracování

  1. V každém dalším formuláři používat skryté položky ve kterých budou zahrnuty položky z předchozích formulářů
  2. Údaje z předchozích dormulářů si dále předávat v URL (při rozsáhlých formulářích nepoužitelné)
  3. Údaje z předchozích formulářů si ukládat do souboru.
  4. Údaje z předchozích formulářů si ukládat do promměnné typu session
  5. Údaje z předchozích formulářů si ukládat pomoci cookies (pokud je ale uživatel nemá povoleny, máre smůlu)
  6. Údaje z předchozích formulářů si ukládat do pomocné DB, kde postupně doplňujeme vyplněné položky.

Po vyplnění posledního formuláře nasbíraná data zpracovat a uložit do databáze. Při použití metody číslo 1 s každým dalším formulářem narůstá objem přenášených dat. Jako nejefektivněší lze označit metodu číslo 6. neboť při dobře konstuovaném formuláři lze zjistit, zda uživatel pokračuje ve vyplňování formuláře, který začal vyplňovat před hodinou, ale pro výpadek spojení musel vyplňování přerušit. Použítím této metody šetříme nejen množství přenesených dat, ale i čas uživatele.

To je pro dnešek vše. V příštím článku o zpracování formulářů se můžete těšit na několik funkcí pro kontrolu vyplněných údajů.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *