Katalog ASP odkaz∙: Hledßte informace o ASP? Zkuste nßÜ nov² katalog odkaz∙ na ASP weby. Vφce zde...
TextLink.cz
VyÜlo: 11.1.2001 Rubrika: ASP - ZaΦφnßme

Jak p°edßvat data mezi ASP scripty?
V Φlßnku se dozvφte, jak po vypln∞nφ a odeslßnφ formulß°e zφskßte data na nßsledujφcφ strßnce pomocφ ASP scriptu. Dozvφte se co jsou to metody POST a GET a kdy jakou pou₧φt. NauΦφte se °eÜit situaci, kdy nevφte kterß metoda je pou₧φta a obecn∞ se seznßmφte se zp∙soby p°enos∙ dat mezi strßnkami. Vφce v Φlßnku...

Pro p°enos dat mezi dv∞ma ASP scripty je mo₧nΘ vyu₧φt slu₧eb metody GET nebo POST. Metoda GET je vhodnß pro p°enos menÜφho objemu ·daj∙ a to jak z formulß°e, tak °ßdku pro URL.

Metoda prvnφ - GET

P°φklad:

Vytvo°φme si jednoduch² formulß° ze kterΘho chceme p°enΘst data na nßsledujφcφ strßnku:

<FORM ACTION="stranka.asp" METHOD="GET">
      <INPUT TYPE="text" NAME="Jmeno" VALUE="Frantisek">
      <INPUT TYPE="text" NAME="Prijmeni" VALUE="Voprsalek">
      <INPUT TYPE="submit" NAME="OK" VALUE="Odeslat">
</FORM>

Po odeslßnφ tohoto formulß°e vygeneruje prohlφ₧eΦ nßsledujφcφ adresu:

http://neco.cz/script.asp?Jmeno=Frantisek&Prijmeni=Voprsalek&OK=Odeslat

Pro "p°evzatφ" resp. zpracovßnφ dat z adresy je nutnΘ vyu₧φt objekt Response a jeho kolekci QueryString.

KonkrΘtnφ v²sledek bude vypadat nßsledovn∞:

<%
Dim strJmeno, strPrijmeni
strJmeno = Request.QueryString("Jmeno")
strPrijmeni = Request.QueryString("Prijmeni")
Response.Write("Jmeno: " & strJmeno & "<br>Prijmeni: " & strPrijmeni)
%>

V tomto k≤du jsme si nejd°φve nadefinovaly prom∞nnΘ do pam∞ti pomocφ p°φkazu Dim a nßsledn∞ p°evzali data z adresy pomocφ Request.QueryString, kterΘ se ulo₧ili do prom∞nnΘ strJmeno resp. strPrijmeni. Na zßve° pomocφ Response.Write provede p°ekladaΦ zßpis obsahu prom∞nn²ch do v²slednΘ HTML strßnky.

Metoda druhß - POST

Druhou mo₧nostφ, jak p°enΘst data ze strßnky na strßnku je metoda POST, kterß funguje na podobnΘm principu jako GET. Je vhodnß pro p°enos libovoln∞ velk²ch informacφ, kterΘ se nevklßdajφ jako parametr do URL volanΘ strßnky, ale ulo₧φ se do nevidit∞lnΘ Φßsti strßnky(hlaviΦky) ze kterΘ je lze op∞t zφskat pomocφ kolekce Form objektu Request.

P°φklad:

Toto je toto₧n² formulß° jako v p°φklad∞ u metody GET, akorßd se zm∞nil parametr u tagu FORM z GET na POST.

<FORM ACTION="stranka.asp" METHOD="POST">
      <INPUT TYPE="text" NAME="Jmeno" VALUE="Frantisek">
      <INPUT TYPE="text" NAME="Prijmeni" VALUE="Voprsalek">
      <INPUT TYPE="submit" NAME="OK" VALUE="Odeslat">
</FORM>

Zpracovßnφ(p°evzetφ) dat z formulß°e resp. z hlaviΦky strßnky provedeme nap°φklad nßsledovn∞:

<%
Dim strJmeno, strPrijmeni
strJmeno = Request.Form("Jmeno")
strPrijmeni = Request.Form("Prijmeni")
Response.Write("Jmeno: " & strJmeno & "<br>Prijmeni: " & strPrijmeni)
%>

V²sledek obou dvou p°φklad∙(GET a POST) bude toto₧n².

Kdy pou₧φt GET a kdy POST?

Na tuto otßzku je relativn∞ jednoduchß odpov∞∩: chcete-li p°enßÜet krßtkΘ informace, kterΘ nejsou d∙v∞rnΘ(hesla atp.) vyu₧ijte slu₧eb metody GET. Jestli₧e budete chtφt p°enΘst delÜφ texty nebo informace, kterΘ nechtece ukaztovat ka₧dΘmu "chmatßkovi", je nutnΘ vyu₧φt pro p°enos metodu POST, kterß se stane vaÜim v∞rn²m pomocnφkem.

Jak °eÜit problΘm neznalosti pou₧φvanΘ metody?

Mo₧nß vßs napadla situace, kdy budete mφt strßnku, kterß bude zpracovßvat po₧adavky z vφce formulß°∙ u kter²ch budete pou₧φvat r∙znΘ metody pro p°enos.

╪eÜenφ je nßsledujφcφ:

Objekt Request nevy₧aduje specifikovßnφ pou₧itΘ metody resp. pou₧itφ Request.QueryString nebo Request.Form, ale snese pouze Request("nazev"), kde nazev obsahuje °∞tezcovou prom∞mnou jmΘna hlaviΦky.

P°φklad:

<%
Dim strJmeno, strPrijmeni
strJmeno = Request("Jmeno")
strPrijmeni = Request("Prijmeni")
Response.Write("Jmeno: " & strJmeno & "<br>Prijmeni: " & strPrijmeni)
%>

Co kdy₧ majφ dva parametry stejn² nßzev?

Toho nejpozorn∞jÜφho Φtenß°e jist∞ napadlo, ₧e m∙₧e nastat situace, kdy se ve formulß°i vyskytnou dv∞ pole se shodn²m nßzvem. Jak s t∞mito "dublßky" pracovat a kde je vyu₧φt se dozvφte v zφt°ejÜφm Φlßnku...

Zden∞k Cendra
ceskywap@ceskywap.cz



   Souvisejφcφ Φlßnky
TextLink.cz