<<< Förra avsnittet | Innehåll | Nästa avsnitt >>> |
Själva formuläret kodas i HTML med speciella styrkoder. CGI-programmet skrivs i ett lämpligt programmeringsspråk och installeras och körs (exekveras) på servern. På de flesta webbservrar finns det några färdiga CGI-program installerade, och det finns också färdiga CGI-program att hämta på Internet. Se vidare avsnittet om CGI.
Ett formulär börjar alltid med <FORM> och slutar med </FORM>. Däremellan kan man placera textinskrivningsfält, radioknappar, kryssrutor, popup-menyer etc. Formuläret kan också innehålla "vanliga" HTML-konstruktioner som text, rubriker, listor, tabeller etc. Man får dock inte ha ett formulär inne i ett annat formulär (men man kan ha två eller flera formulär efter varandra på samma sida).
Till styrkoden <FORM> anger man attribut som anger vart och hur formulärdatat (den information som användaren matat in) ska skickas.
Med attributet METHOD anger man hur formulärdatat ska skickas. Man kan välja mellan antingen GET eller POST.
GET innebär att formulärdatat skickas som en del av URL:en, efter ett frågetecken. Formulärdatat kommer att synas i webbläsarens adressfält. Mängden data som kan skickas på detta sätt är begränsad.
POST innebär att formulärdatat skickas som ett datablock till servern tillsammans med begäran om den nya sidan. Denna metod är att föredra i de allra flesta fall.
Med attributet ACTION anger man vart formulärdatat ska skickas. Detta är oftast webbadressen (URL:en) till ett CGI-program på servern (se vidare avsnittet om CGI). CGI-programmet tar hand om formulärdatat, behandlar det på något sätt och skickar sedan tillbaka en webbsida till webbläsaren, baserad på den information som användaren skickade in. Om formuläret till exempel används för att skriva in sökbegrepp till en databassökning så kan CGI-programmet skicka tillbaka en sida med sökresultatet på.
Exempel: <FORM METHOD="POST" ACTION="/cgi-bin/dbsearch"> gör att formulärdatat skickas med metoden POST till CGI-programmet "dbsearch" i den egna serverns cgi-bin-mapp.
Man kan också ange ACTION som en mailto:-adress. Då skickas formulärdatat som ett e-postmeddelande till angiven adress. E-postmeddelandet går från webbläsaren, och för att detta ska fungera så måste användaren ha skrivit in sin e-postadress och sin server för utgående e-post i sin webbläsares inställningar.
Exempel: <FORM METHOD="POST" ACTION="mailto:info@firma.se"> gör att formulärdatat skickas med metoden POST till e-postadressen info@firma.se.
Om man låter ACTION leda till en e-postadress kan man också ange ENCTYPE="text/plain" för att det ska bli lättare för brevets mottagare att läsa formulärdatat.
Kod | Visas som |
---|---|
Ditt namn: <INPUT NAME="namn"><P> Ditt telefonnummer: <INPUT NAME="telefon"><P> Din skostorlek: <INPUT NAME="sko"><P> |
Vill du ha ett textinskrivningsfält längre eller kortare än 20 tecken använder du SIZE:
Kod | Visas som |
---|---|
Din skostorlek: <INPUT NAME="sko" SIZE="3"> |
Textfältet blir tre tecken långt.
Observera att det fortfarande går att skriva in mer text, det som inte syns i rutan rullar åt vänster. Om du vill begränsa användarna att bara skriva in så mycket som får plats i rutan använder du MAXLENGTH:
Kod | Visas som |
---|---|
Din skostorlek: <INPUT NAME="sko" SIZE="3" MAXLENGTH="3"> |
Textfältet blir tre tecken långt och försöker man skriva in mer hörs ett varningsljud. Värdena för SIZE och MAXLENGTH kan vara olika. Det går att fylla i fältet i förväg. Genom att ange VALUE så kommer fältet ha text i sig när det presenteras för användaren. Användaren kan sedan välja att ändra texten eller inte. Detta kan till exempel användas för att föreslå ett svar eller för att visa hur ett svar kan se ut.
Kod | Visas som |
---|---|
<INPUT NAME="namn" VALUE="Fyll i ditt namn här"> |
Kod | Visas som |
---|---|
<INPUT TYPE="submit" VALUE="Skicka formuläret"> |
VALUE anger den text som står på själva knappen. Om denna inte anges kommer det stå "Submit" på knappen.
Man kan ha flera sänd-knappar i samma formulär.
Kod | Visas som |
---|---|
<INPUT TYPE="reset" VALUE="Töm alla fält"> |
VALUE är den text som står på själva knappen. Om denna inte anges kommer det stå "Reset" på knappen.
Ifall något av fälten har förvald text (med VALUE) så kommer denna att återställas. Reset innebär alltså "återställ till förvalda värden" snarare än "töm alla fält".
Kod | Visas som |
---|---|
<INPUT TYPE="checkbox" NAME="allan" VALUE="kakan"> <INPUT TYPE="checkbox" NAME="allan" VALUE="kakan" CHECKED> |
CHECKED gör att rutan är ikryssad som förval.
Flera olika kryssrutor kan ha samma NAME. För varje ikryssad ruta kommer ett NAME/VALUE-par att skickas till servern. För icke ikryssade rutor skickas inget NAME/VALUE-par.
I exemplet nedan måste man välja en betalningsmetod, man kan inte både betala med kontanter och check samtidigt. Alla knappar i ett formulär som har samma NAME hör ihop, och endast en av dessa kan vara markerad.
Kod | Visas som |
---|---|
<INPUT TYPE="radio" NAME="betala" VALUE="kontant"> Kontant.<P> <INPUT TYPE="radio" NAME="betala" VALUE="check"> Check.<P> <INPUT TYPE="radio" NAME="betala" VALUE="kreditkort"> Kreditkort.<P> |
Om man vill att en av knapparna ska vara ikryssad som förval används attributet CHECKED (se ovan).
Kod | Visas som |
---|---|
<SELECT NAME="mat"> <OPTION>Hamburgare <OPTION>Pizza <OPTION>Sushi <OPTION SELECTED>Köttbullar <OPTION>Kebab <OPTION>Fylld baguette </SELECT> |
Det alternativ som står efter den första <OPTION>-koden kommer att bli det som syns ifall användaren inte ändrar något. Vill man att ett annat av alternativen ska vara förvalt anger man det som <OPTION SELECTED>. En reset-knapp återställer till förvalt värde.
Det NAME som skickas kommer att vara det som anges i styrkoden <SELECT>, och det VALUE som skickas är den text som står efter <OPTION>. Den syns även i listan på själva webbsidan. Ifall man vill att något annat än det som står i listan ska skickas till servern kan man ange VALUE inne i <OPTION>-koden:
<OPTION VALUE="Baguette">Fylld baguetteOm användaren i detta fall väljer "Fylld baguette" från listan kommer NAME/VALUE-paret "mat=Baguette" skickas till servern.
Kod | Visas som |
---|---|
<SELECT NAME="mat" SIZE="4"> <OPTION>Hamburgare <OPTION>Pizza <OPTION>Sushi <OPTION SELECTED>Köttbullar <OPTION>Kebab <OPTION VALUE="Baguette">Fylld baguette </SELECT> |
Även här kan man förvälja alternativ med <OPTION SELECTED> och ange speciella värden med <OPTION VALUE>. En reset-knapp återställer till förvalt värde.
I en rullningsbar lista kan användaren få markera flera alternativ. Detta görs möjligt genom attributet MULTIPLE:
Kod | Visas som |
---|---|
<SELECT NAME="mat" MULTIPLE SIZE="4"> <OPTION>Hamburgare <OPTION>Pizza <OPTION>Sushi <OPTION SELECTED>Köttbullar <OPTION>Kebab <OPTION VALUE="Baguette">Fylld baguette </SELECT> |
Här bör man skriva en anvisning på sidan så att användaren förstår att det är tillåtet att välja flera alternativ. Beroende på vad användaren har för datortyp markeras flera val med hjälp av skift-, control, kommando- eller motsvarande tangent.
Kod | Visas som |
---|---|
<TEXTAREA NAME="brev_till_allan" ROWS="10" COLS="30"> </TEXTAREA> |
Textfältet blir i detta fall 10 rader högt och 30 tecken brett. Skriver användaren in mer kommer fältet rullas.
Vill man att raderna i textinskrivningsfältet ska brytas när man når kanten på fältet istället för att texten bara rullas åt vänster kan man använda attributet WRAP. WRAP="SOFT" gör att raderna bryts på skärmen, men att webbläsaren inte stoppar in några radbrytningar i den text som skickas till servern, medan WRAP="HARD" gör att radbrytningarna även skickas med till servern. WRAP="OFF" ger samma effekt som att utelämna WRAP; texten ser ut och skickas exakt som den skrevs in. WRAP stöds endast av vissa webbläsare.
Vill man ha en text inskriven i förväg i ett <TEXTAREA>-fält anger man den mellan start- och slutkoderna:
Kod | Visas som |
---|---|
<TEXTAREA NAME="brev_till_allan" ROWS="10" COLS="30">Hej Allan! Vill du ha en kaka? </TEXTAREA> |
Användaren som fyller i formuläret kan ändra texten. En reset-knapp återställer till förvalt värde.
Kod | Visas som |
---|---|
<INPUT TYPE="password" NAME="pwd"> |
Det som användaren skriver in kommer visas som asterisker eller svarta cirklar.
Även här kan man ange ett förval t.ex. för anslutning som gäst:
Kod | Visas som |
---|---|
<INPUT TYPE="password" NAME="pwd" VALUE="guestpwd"> |
Användaren som fyller i formuläret kan ändra texten. Notera att ett förvalt värde lätt kan ses av en användare som tittar på HTML-koden via "View Document Source". En reset-knapp återställer till förvalt värde.
<INPUT TYPE="hidden" NAME="stork" VALUE="gris">Observera att även gömda fält lätt kan ses av en användare som tittar på HTML-koden via "View Document Source".
Kod | Visas som |
---|---|
<INPUT NAME="Allan" TYPE="image" SRC="bildfil.gif"> |
På webbsidan visas bilden som anges som SRC, och när användaren klickar på bilden skickas ett NAME/VALUE-par där VALUE är de koordinater inom bilden som användaren klickade på.
<FORM METHOD="POST" ACTION="url" ENCTYPE="multipart/form-data">Filen skickas, tillsammans med övrig formulärdata, som mediatypen "multipart". CGI-programmet på servern som tar emot filen måste hantera detta på något lämpligt sätt.
<INPUT NAME="filename" TYPE="file">
</FORM>
<<< Förra avsnittet | Innehåll | Nästa avsnitt >>> |