4.12. Űrlapok - FORM

Default book

Utoljára hagytuk az űrlapok kezelését. A HTML-ben lehet készíteni olyan oldalakat, amelyek adatbevitelre alkalmasak, majd a küldés gomb hatására az adatokat átküldjük a szervernek, ahol azt fel lehet dolgozni. Mivel szerver oldalon az adatok fogadását szerver oldali programokkal lehet megoldani, és a szerver oldali programozás későbbi anyag, ezért itt csak a HTML oldallal foglalkozunk.

Az űrlap készítéséhez meg kell jelölni a HTML oldal egy részét a <form> ....</form> TAG párral. Ami ezen belül űrlap adatelem azokat az adatokat küldi majd át a szervernek a böngésző.

Milyen paramétereket kell elküldeni a szervernek?

Meg kell adni, hogy melyik oldalnak küldi a böngésző az adatokat. A leggyakoribb megoldás az, hogy a szerveren ugyanazt az űrlapot hívjuk meg, amelyiken éppen vagyunk és a szerveren az űrlapunkon lefut egy program, ami a bejövő adatokat értékeli, feldolgozza, majd visszakerülünk ugyanoda, ahol korábban voltunk.

az adatbevitelre általában az <input> tag valamelyik fajtáját használjuk. Újítás, hogy az input mezőhöz lehet hozzácsatolni egy <label> tag-et, amelyben hivatkozhatunk egy beviteli mezőre:

<label for="hello"> Itt van a szöveg </label>

<input name="hello" value="Hello World!" id="hello"

:
Numerikus adat:
Választás egy tartományból:
Telefonszám:
URL:
Jelszó:
Email:
Kereső kifejezés:
File feltöltése:
Egy checkbox (igen / nem)
Szín megadása:
Dátum megadása:
dátum + idő megadása:
Csak a hónap:
Csak a hét:

Hosszabb szöveg bevitele:

Egy választó lista:

Választó lista a lehetőségek közül:
Első:
Második:
Harmadik:

Elküldés:

A fenti űrlapnak az alábbi a kódja:

<form enctype="multipart/form-data" method="get" name="teszt">
<p><label for="szovegesadat">Egy szöveges adat</label>: 
    <input maxlength="256" name="szovegesadat" required="required" size="128" type="text" value="alapértelmezett" /><br>
    Numerikus adat: <input max="10" min="1" name="szam" step="0.5" type="number" value="2" /><br />
    Választás egy tartományból: <input max="10" min="1" name="tartomany" step="0.5" type="range" value="3" /><br />

    <label for="tel">Telefonszám</label> Telefonszám: <input name="tel" type="tel" value="+36 30 123 1234" /><br />
    URL: <input name="url" type="url" value="http://www.fzolee.hu" /><br />
    Jelszó: <input name="jelszo" pwfprops="," type="password" value="titok" /><br />
    Email: <input name="imel" type="email" value="xy@fzolee.hu" /><br />
    Kereső kifejezés: <input name="kereso" type="search" value="Keresési kifejezés..." /><br />
    File feltöltése: <input name="file" type="file" value="Filenév..." /><br />
    Egy checkbox (igen / nem) <input checked="checked" name="Jelolo" type="checkbox" value="1" />
    Szín megadása: <input type="color">
    Dátum megadása: <input type="Date">
    Pontos időpont: <input type="Datetime">
    Csak a hónap: <input type="month">
    Csak a hét: <input type="week">
</p>

<p>Hosszabb szöveg bevitele:<br />
<textarea cols="64" name="hosszabb_szoveg" rows="5">alapértelmezett szöveg</textarea></p>

<p>Egy választó lista:<br />
<select name="lista">
  <option value="1">első</option>
  <option value="2">második</option>
  <option value="3">harmadik</option>
</select>
</p>

<p>Választó lista a lehetőségek közül:<br />
Első:<input name="valaszto" type="radio" value="1" /><br />
Második:<input name="valaszto" type="radio" value="2" /><br />
Harmadik:<input name="valaszto" type="radio" value="3" /></p>

<p>Elküldés:<br />
<input name="Kuldés" type="submit" value="Küldés" /></p>
</form>

Minden űrlapelemnek van name="érték" attribútuma. A szervernek elküldött adatokban ezzel a névvel hivatkozunk rá. Ez a name="paraméter" független a korábban megtanult ID="érték" paramétertől, de érdemes ugyanazt az elnevezést használni!

A FORM tag attribútumai

method="POST | GET"

Ezzel tudjuk megadni, hogy a két lehetőségünk közül melyik módon küldjük a szervernek az értékeket.

method="get" - A GET módszer olyan, mintha a böngésző parancssorába írnánk be az adatokat.
method="post" - A POST egy kicsit rejtettebb, de azzal sem lehet nagyon elrejteni a küldött adatokat. Inkább akkor használjuk, hogyha hosszabb szövegeket akarunk elküldeni a szervernek, illetve file-t akarunk feltölteni, mert azt csak POST metódussal lehet.

Ha nem adjuk meg a paramétert, akkor az alapértelmezett módszer a GET lesz.

enctype="típus"

enctype="application/x-www-form-urlencoded" - Ha az űrlapon URL adatok is szerepelnek. Ilyenkor a feltöltött adatok speciális karaktereit elkódolja a böngésző.
enctype="multipart-form/data" - Az első választás akkor szükséges, ha bináris fájlt is fel akarunk tölteni.
enctype="text/plain" - Akkor használjuk, ha nincsen különösebb formázási igény az űrlapon

Ha nem adjuk meg a paramétert, akkor az alapértelmezett módszer az első, vagyis application/x-www-form-urlencoded.

name="elnevezes"

Az űrlapnak illik nevet adni, mert a szerver oldalon így lehet megkülönböztetni azt az esetet, ha egy weboldalon több űrlap van.

action="celoldal"

Ha egy webold űrlapját egy másik oldalon akarjuk feldolgozni, akkor kell használnunk az action paramétert. A megadott oldalra küldi el a böngészőt.

Ha nem adjuk meg a paramétert, akkor saját magát hívja meg az oldal.

target="ablak elnevezés"

target="_blank" - Új üres böngészőablakban jelenik meg a válasz
target="_self" - Az eredeti ablakban jelenik meg a válasz (ez az alapértelmezett)
target="frame / iframe neve" - Egy frame /iframe elnevezett oldalán jelenik meg a válasz.

accept-charset="UTF8"

Ezzel a paraméterrel megadhatjuk, hogy milyen karakterkódolást használhatunk az űrlapon. Ha nem adjuk meg, akkor az lesz a kódolás, ami magán a weboldalon általában.