Hlavnß strßnka · DiskusnΘ F≤rum · PracovnΘ prφle₧itosti · Zoznam

 Main Menu
o Hlavnß strßnka
o Zoznam tΘm
o Zoznam
o OdporuΦte nßs
o U₧φvatelia
o VaÜe konto
o Pridaj Φlßnok
o ètatistiky
o Top 10

 Reklama


 Developer Zone's
o Internet
o Tools
o Linux
o CGI Zone
o ASP Zone
o ASP.net
o PHP Zone
o CSS Zone
o JavaScript
o MySQL
o WAP / WML
o WML / WMLScript
o XML / XHTML
o Tipy a triky
o Best of web
o WebServers
o WebDesign
o Grafika

 Servis
o Vyh╛adßvanie
o F≤rum
o Workoffice
o Zoznam Φlßnkov
o Reklama
o Pridaj Φlßnok
o Pridaj novinku

NapφÜte nßm
Homepage Do favoritov

 LinkExpres
Interval.cz · Pc.sk
Builder.cz · Mobilmania
PCSvet.cz · Asp.cz
Webdnes · Äiv∞.sk
Zoznam.sk · Atlas.sk
Inzine.sk · PHP.sk
Agent.sk · Lupa.cz
Code.box.sk · Root.cz
Pixel32 · Grafika.cz

 forum.developer.sk
o F≤rum ::
o Markup languages
o ScriptovΘ jazyky
o CGI
o PHP/MySQL
o Perl
o Grafika
o Webservery
o HTML Editory
o Browsery
o Bookmarx
o ASP
o Vytvor tΘmu ::

 PracovnΘ prφle₧itosti
o Pon·kate prßcu?
o H╛adßte prßcu?

 Autori developer.sk
o Martin NemeΦek
o SvΣ¥o Straka
o Jany Masaryk
o Jozef Murφn

 
CGI / Perl [ 02. December 1999] - Svato_Straka
Formulßre ako vstup CGI skriptu - 4. Φas¥ CGI
Predpokladßm ₧e snß∩ ka₧d² u₧ niekedy navÜtφvil strßnku vyh╛adßvaΦa Altavista. Tam hne∩ na zaΦiatku strßnky na vßs vyk·ka pole pre zadanie re¥azca, ktor² chcete h╛ada¥.



Ke∩ potom kliknete na tlaΦφtko search, laebo stlaΦφte enter, re¥azec, ktor² ste zadali je odovzdan² na vstup CGI skriptu. Pozrieme sa dnes spoloΦne na to, akΘ vÜetky mo₧nosti vßm formulßre v HTML poskytuj· na odovzdanie ·dajov vßÜmu CGI programu.

Pok²m chcete na svoju strßnku umiestni¥ formulßr, mal by k≤d tohto formulßra v₧dy obsahova¥ ako prv² tag <FORM>. Tento tag je povinne pßrov², to znamenß ₧e obsah formulßra musφ by¥ ukonΦen² tagom </FORM>. V praxi m⌠₧e vyzera¥ k≤d formulßra nasledovne:
<FORM METHOD="POST" ACTION="/cgi-bin/skript.cgi">
<!-- samotn² formulßr -->
</FORM>

Tu ste si urΦite vÜimli dva zßkladnΘ atrib·ty tagu FORM, a to ACTION a METHOD. Hodnotou atrib·tu ACTION je URL skriptu, ktor² spracuje dßta zadanΘ u₧φvate╛om v danom formulßri. Atrib·t METHOD m⌠₧e nadobudn·¥ jednu z dvoch hodn⌠t: GET alebo POST. Rozdiel je v tom, ₧e POST posiela dßta na vstup skriptu prostrednφctvom ÜtandardnΘho vstupu a GET pomocou premenn²ch prostredia (konkrΘtne QUERY_STRING).

AkΘ vÜetky prvky m⌠₧ete vo svojom formulßri pou₧i¥? S· to textovΘ polia, polia pre zadßvanie hesiel, prepφnacie tlaΦφtka (radio buttony), zaÜkrtßvacie polia (check boxy), ponuky, posuvnΘ zoznamy, viacriadkovΘ textovΘ polia a samozrejme tlaΦφtka Submit (OdoÜli) a Reset (Vyma₧).

NajjednoduchÜφm prvkom formulßra je textovΘ pole, resp. pole pre zadßvanie hesla. Toto pole je presne to, ktorΘ vidφte na strßnke Altavisty, resp. aby som nechodil ∩aleko Superzoznamu. Jednoduch² riadok, do ktorΘho m⌠₧e u₧φvate╛ napφsa¥ text, resp. m⌠₧ete urΦi¥, ak² text sa bude v tomto poli nachßdza¥ pri jeho zobrazenφ. Vyzerß nasledovne:

Text:

TakΘto textovΘ pole vlo₧φte do vßÜho dokumentu pomocou nepßrovΘho tagu INPUT, ktorΘmu priradφte atrib·t TYPE s hodnotou TEXT:
Text: <INPUT TYPE="TEXT" NAME="VSTUP" SIZE="30" VALUE="Preddefinovany text">

Pok²m atrib·t TYPE v tagu INPUT vynechßte, bude implicitne vytvorenΘ jednoduchΘ textovΘ pole.

Atrib·ty NAME a VALUE s· spoloΦnΘ pre viacero vstupn²ch prvkov formulßra. Pomocou NAME prira∩ujete danΘmu prvku meno, pomocou ktorΘho m⌠₧ete zisti¥ jeho hodnotu bez pou₧itia nejak²ch krkolom²ch met≤d (napr. indexovania). Atrib·tom VALUE m⌠₧ete prednastavi¥ hodnotu, ktor· dan² prvok odovzdß CGI skriptu na spracovanie.

Atrib·t size v tomto prφpade urΦuje, ko╛ko znakov bude zobrazen²ch naraz vo vstupnom poli. u₧φvate╛ samozrejme m⌠₧e zada¥ re¥azec dlhÜφ, ako je poΦet zobrazen²ch znakov.

Pok²m chcete prida¥ do svojho formulßra pole na zadanie hesla, je to opΣ¥ mo₧nΘ pomocou tagu INPUT priradenφm hodnoty PASSWORD atrib·tu TYPE. Potom pri zadßvanφ re¥azca bud· miesto jednotliv²ch znakov zobrazovanΘ hviezdiΦky, resp. bodky:

Heslo:

Nutno sa zmieni¥ o ∩alÜom type vstupnΘho po╛a, ktorΘ je hojne vyu₧φvanΘ na zadanie urΦitej hodnoty, ktor· chcete skriptu z formulßru odovzda¥, Φo sa hodφ napr. pri odovzdßvanφ dßt medzi viacer²mi formulßrmi. Typ vstupu o ktorom hovorφm nie je prehliadaΦom zobrazen², avÜak je s·Φas¥ou formulßra a v HTML k≤de vyzerß nasledovne:
Text: <INPUT TYPE="HIDDEN" NAME="POLOZKA" VALUE="Hodnota">

Tak²to prvok odovzdß na vstup CGI skriptu polo₧ku s nßzvom definovan²m v atrib·te NAME a hodnotou tejto polo₧ky bude hodnota atrib·tu VALUE.

╧alÜφm formulßrov²m prvkom je zaÜkrtßvacie pole alebo checkbox. UrΦite vßs ihne∩ napadß vyu₧itie takΘhoto prvku, tka₧e prejdem priamo k jeho vytvoreniu. OpΣ¥ na≥ sl·₧i nßÜ znßmy tag INPUT, tentokrßt vÜak atrib·tu TYPE musφte priradi¥ hodnotu CHECKBOX. Potom pod╛a toho, akΘ meno priradφte danΘmu checkboxu, dostane skript na svoj vstup re¥azec meno_checkboxu=on pri zaÜkrtnutom polφΦku. Implicitn· hodnotu "on" m⌠₧ete potlaΦi¥ atrib·tom VALUE, pri zaÜkrtnutφ polφΦka sa tßto potom priradφ k menu checkboxu a odoÜle na vstup skriptu. Zßrove≥ m⌠₧ete urΦi¥, ₧e checkbox bude pri naΦφtanφ strßnky zaÜkrtnut² pomocou atrib·tu CHECKED, ktor² nenadob·da ₧iadnu hodnotu. Nasledovn² k≤d vytvorφ 3 zaÜkrtßvacie polφΦka:
PolφΦko 1 <input type="Checkbox" name="policko1">
PolφΦko 2 <input type="Checkbox" name="policko2" CHECKED>
PolφΦko 3 <input type="Checkbox" name="policko1">

PolφΦko 1 PolφΦko 2 PolφΦko 3

Takto vytvorenΘ checkboxy nie s· navzßjom "spriahnutΘ" a m⌠₧e ich by¥ naraz zaÜkrtnut²ch nieko╛ko. Pok²m chcete da¥ u₧φvate╛ovi mo₧nos¥ vybra¥ si len jednu hodnotu z nejakej mno₧iny hodn⌠t, pou₧ite prepφnacie tlaΦφtko - radio button.

Radio button vytvorφte, ak tagu INPUT priradφte atrib·t TYPE s hodnotou RADIO. Tu platφ jedna zßsada: ak mß ma¥ u₧φvate╛ mo₧nos¥ v²beru len jednej hodnoty, musia ma¥ vÜetky prvky danej mno₧iny rovnak² nßzov. Potom skript dostane pri odoslanφ formulßra na svoj vstup nßzov radio buttonu a jeho hodnotou bude hodnota atrib·tu VALUE zaÜkrtnutΘho radio buttonu. OpΣ¥ platφ, ₧e zaÜkrtnut² prvok urΦφte atrib·tom CHECKED:
Hodnota 1 <input type="radio" name="hodnota" value="1">
Hodnota 2 <input type="radio" name="hodnota" value="2" CHECKED>
Hodnota 3 <input type="radio" name="hodnota" value="3">

Hodnota 1 Hodnota 2 Hodnota 3

PoslednΘ dva prvky, ktorΘ vyu₧φvaj· tag INPUT s· tlaΦφtka Submit (OdoÜli) a Reset (Vyma₧). U₧ ich nßzvy urΦuj·, Φo bude hodnotou atrib·tu TYPE - teda SUBMIT alebo RESET. Ich implicitnΘ popisky - Submit Query pre SUBMIT a Reset pre RESET m⌠₧ete samozrejme zmeni¥ hodnotou atrib·tu VALUE.

Ako u₧ vypl²va z ich nßzvov, tlaΦφtko Submit odovzdß u₧φvate╛om zadanΘ dßta z formulßra na vstup skriptu a laΦφtko Reset vyma₧e formulßr, resp. uvedie ho do stavu, v ktorom je po naΦφtanφ strßnky browserom. OpΣ¥ nasleduje prφklad, v ktorom si vytvorφme takΘto tlaΦφtka a zmenφme ich popisky:
<input type="Submit" value="OdoÜli formulßr">
<input type="Reset" value="Vyma₧ formulßr">

Dostßvame sa k ponukßm a posuvn²m zoznamom. V zßsade medi tymito dvoma prvkami je len minimßlny rozdiel: v posuvnom zozname je mo₧nΘ zobrazi¥ a vybra¥ viac prvkov naraz, kde₧to v ponuke je mo₧nΘ vyba¥ len jednu polo₧ku. Oba tieto prvky s· tvorenΘ pomocou tagu SELECT, ktor² nadob·da znßmy atrib·t NAME. Tag SELECT je povinne pßrov² a vo svojom tele obsahuje skupinu tagov OPTION. Tu je ukß₧ka vytvorenia ponuky:
<select name="ponuka">
<option>Ponuka1
<option selected>Ponuka2
<option>Ponuka3
</select>

UrΦite ste si vÜimli, ₧e pomocou atrib·tu SELECTED je mo₧nΘ vopred nastavi¥ polo₧ku, ktorß bude vybranß. Pri odoslanφ dßt formulßra takßto ponuka odoÜle na vstup CGI skriptu meno ponuky danΘ atrib·tom NAME tagu SELECT a hodnotu zvolenej polo₧ky - tagu OPTION. T·to hodnotu tvorφ text, ktor² nasleduje za tagom OPTION, resp. ju m⌠₧ete urΦi¥ atrib·tom VALUE.

Pok²m chcete vytvori¥ posuvn² zoznam, pou₧ijete rovnak· konÜtrukciu ako pre vytvorenie ponuky a v tagu SELECT pomocou atrib·tu SIZE urΦφte poΦet polo₧iek, ktorΘ bud· naraz vidite╛nΘ. M⌠₧ete tie₧ pomocou atrib·tu MULTIPLE urΦi¥, ₧e bude mo₧nΘ vybra¥ viac hodn⌠t naraz. Prφklad:
<select name="list" size=3 multiple>
<option>Ponuka1
<option selected>Ponuka2
<option>Ponuka3
<option>Ponuka4
<option>Ponuka5
</select>

Na zßver nßm ostal u₧ len jeden prvok formulßra, a to viacriadkovΘ textovΘ pole. Toto je tvorenΘ povinne pßrov²m tagom TEXAREA, ktorΘmu atrib·tmi COLS a ROWS urΦφte poΦet zobrazen²ch stσpcov a riadkov. Pok²m u₧φvate╛ zadß viac znakov, ako sa do danΘho priestoru vojde, na okraji tohto prvku sa vytvorφ posuvnφk a u₧φvate╛ m⌠₧e k╛udne vpisova¥ ∩alej. Nßzov tohto prvku opΣ¥ urΦujete atrib·tom NAME. Pok²m chcete zada¥ nejak² text, ktor² sa mß v danom poli zobrazi¥, neurΦujete ho priamo ako atrib·t tagu TEXTAREA, ale musφte ho zada¥ do tela tagu:
<textarea name="pole" cols="45" rows="5">
Sem m⌠₧ete vpφsa¥ svoj text...
</textarea>

Nabud·ce si vysvetlφme, ako v skripte spracova¥ vstupnΘ dßta.

 
 PrφsluÜnΘ odkazy k tΘme
Viac o tΘme: CGI / Perl | InΘ Φlßnky od: Admin | PoÜli komentßr | Strßnka vhodnß na tlaΦ width=15 height=11  PoÜli tento Φlßnok priate╛ovi, znßmemu width=15 height=11


NajΦφtanejÜie Φlßnky CGI / Perl:
╚o je to CGI? - ┌vod do CGI

╧alÜie Φlßnky v rubrike CGI / Perl:

 

"Formulßre ako vstup CGI skriptu - 4. Φas¥ CGI" | Login / vytvor konto | 0 Komentßrov
Prah
Za obsah komentßrov je zodpovedn² u₧φvate╛, nie prevßdzkovate╛ t²chto strßnok.



AutorskΘ prßva: á ⌐1999 - 2001 Developer Zone [developer@developer.sk]

VÜetky Φlßnky s· vlastnφctvom autorov Developer Zone. VÜetky prßva vyhradenΘ. Strßnky Developer.sk s· vytvorenΘ pomocou PHP-Nuke.
Odkazy na novΘ Φlßnky je mo₧nΘ prebera¥ pomocou:Backend.php.