ID.nl logo
Zekerheid & gemak

Webformulieren

Een webformulier is een doorgeefluik voor informatie: een bezoeker van een website vult antwoorden op het formulier in en stuurt via een druk op een knop naar de maker van de site. In dit artikel leggen we uit hoe u webformulieren bouwt, welke veldtypes er bestaan en waar formulieren handig en bruikbaar voor zijn.

"Hoe ingewikkeld we webformulieren ook maken, het principe dat er achter zit blijft altijd gelijk: een bezoeker van de webpagina tikt gegevens in de velden van het formulier en klikt daarna op de verzendknop, waarna de informatie automatisch door de browser wordt doorgestuurd voor verdere bewerking. Wáár die gegevens precies naartoe gaan en wat er daar mee gebeurt, hangt af van waarvoor de webmaster de gegevens nodig heeft. Zo kunnen ze (via de standaard postmethode) naar de webserver worden verzonden, waar een of ander programmaatje de formuliergegevens opvangt en verwerkt. Dat programma kan bijvoorbeeld een cgi-script zijn, geschreven in de taal Perl (veel providers bieden zulke cgi-scripts gratis aan), of een script dat bijvoorbeeld geschreven is in de taal php. Het is echter ook mogelijk dat een druk op de verzendknop van het formulier een nieuwe webpagina in beeld zet, of dat de ingetikte gegevens naar een gewoon e-mailadres worden doorgezonden. Soms worden de gegevens helemaal niet verstuurd, maar blijven ze in het formulier op de webpagina staan om bijvoorbeeld door een programma in javascript te worden gebruikt. Verderop in dit artikel komen deze soorten van afhandeling allemaal aan bod. Maar eerst de hoofdvraag: hoe zet je een formulier in een webpagina? Dat stelt eigenlijk niks voor. Zodra u ergens in uw webpagina de code

tikt, weet de browser dat er een formulier begint. Met de codesluit u het formulier af en kan de webpagina weer verder gaan met gewone tekst of andere html-code. Tussen die twee form-codes (ook 'tags' genoemd) bouwt u dus uw specifieke formulier. ***eersteform.tif Een eerste formulier In afbeelding 1 vindt u een kenmerkend voorbeeld van een webformulier. Bovenaan staat de html-code, onderaan ziet u een schermdump van hoe dit formulier er in een webbrowser uitziet. In de afbeeldingen in dit artikel staat de meeste html-code in hoofdletters geschreven en de namen die u zelf mag kiezen in kleine letters, maar dat is alleen voor de duidelijkheid; voor een browser maakt het niets uit. Laten we de onderdelen van dit formulier eens stap voor stap nalopen. Na de gebruikelijke html-begintags zien we, de start van het formulier. Op diezelfde regel geven we het formulier ook een zelfgekozen naam, in dit geval name=“myform”. Dit is niet voor het formulier zelf niet strikt noodzakelijk, maar wij doen het toch, omdat we zodadelijk JavaScript gaan gebruiken en dan is een eigen naam voor het formulier onmisbaar. Na de naam volgen method=“post” en action=“”. Deze twee aanwijzingen vertellen de browser wat hij met de ingevulde gegevens moet doen. In dit geval dus helemaal niks. De verstuurmethode is weliswaar 'post', maar omdat er in dit voorbeeld geen actie is gedefinieerd zal er niets gebeuren als iemand op de verzendknop klikt. Zoals we in het begin al opmerkten, kunnen de gegevens uit een formulier op allerlei manieren worden verwerkt. Stel dat op de webserver een cgi-script staat met de naam 'joepie', dat ontworpen is om de gegevens uit het formulier te bewerken, dan zorgt action=“joepie” ervoor dat de formuliergegevens naar dit specifieke script worden gestuurd. Wilt u liever dat de formuliergegevens door het programma hoi.php worden verwerkt, typt u action=“hoi.php”. U begrijpt dat deze scripts natuurlijk niet toevallig op de server van uw internetprovider zullen staan, dus kunnen we dit niet testen. Verderop bekijken we echter andere manieren om te controleren of de gegevens wel echt worden doorgestuurd. Eerst bekijken we nog even de rest van het formulier. De -tag is erg belangrijk, want deze geeft aan welk soort invoerveld in het formulier wordt afgebeeld. In dit geval kiezen we een invoerveld van het type text, waarin de gebruiker gewone tekst kan typen. De naam van het veld is naam (name=“naam”), de beginwaarde is leeg (value=“”) en we zetten de breedte van het invoerveld op 25 tekens (size=“25”). Op de volgende regel definiëren we de standaard ingebouwde verzendknop (via ) en geven we deze als tekst 'Verstuur gegevens'. Daaronder zetten we nog de standaardknop die automatisch ingevulde tekst wist, voor als de gebruiker per ongeluk een fout heeft gemaakt (). Ook de tekst op deze knop mogen we weer zelf kiezen, in dit geval 'Wis gegevens'. De-tag sluit het formulier tot slot af. Een simpele enquête Als u benieuwd bent wat uw bezoekers van uw website vinden, kunt u ze natuurlijk vragen een mailtje te sturen met hun commentaar. Met behulp van een formulier kunnen we dit proces automatiseren. In afbeelding 2 ziet u de html-code voor een formulier dat drie radiobuttons gebruikt (met daaronder weer een schermdump van hoe dit er in een webbrowser uitziet). We lopen de onderdelen even langs. Na de-tag volgt eerst weer de methode (post) en dan het formaat waarin de gegevens moeten worden gecodeerd (enctype=“text/plain”, dat wil zeggen: gewone tekst). Deze toevoeging is nodig omdat we in dit geval als action “mailto:kees@vuiksvertier.nl” kiezen. Ofwel: stuur de gegevens als gewone e-mail naar het betreffende mailadres. Zodra u nu op de verzendknop klikt, zal uw eigen e-mailprogramma automatisch opstarten en de gegevens versturen. De meeste mailprogramma's geven u hierbij uit oogpunt van veiligheid de gelegenheid eerst nog te controleren om welke gegevens het precies gaat. Radiobutton Het enquêteformulier gebruikt een invoerveld dat we nog niet kennen: de radiobutton. Omdat de drie buttons dezelfde naam hebben (“keuze”), worden ze als één groep beschouwd, met als gevolg dat je altijd maar één van de drie kunt aanklikken - precies het gedrag dat radiobuttons behoren te vertonen. Gaat u dit formulier zelf testen, zult u zien dat er een boodschap verstuurd wordt van de vorm 'keuze=3', of 'keuze=2', afhankelijk van welke keuze u had aangevinkt. (Kies s.v.p. wel een ander adres, anders word ik overstroomd met dit soort mailtjes) Tijd besparen Een vragenlijstje via e-mail is natuurlijk niet ideaal, want het betekent dat u elk mailtje afzonderlijk met de hand moet verwerken; een script op de webserver dat dit automatisch afhandelt, zou veel handiger zijn. Maar ja, dat programma moet u dan zelf schrijven (of misschien biedt uw provider hiervoor een kant-en-klaar cgi-script?). Maar toch kan deze simpele aanpak tijd besparen, zeker als u diverse vragen wilt stellen en als u als waardes geen 1, 2 of 3 gebruikt, zoals hier, maar duidelijke omschrijvingen (bijvoorbeeld ). Soorten invoer Behalve tekstvelden en radiobuttons kan een formulier nog diverse andere types invoervelden bevatten, waarvan we hier de meest voorkomende zullen behandelen. In de afbeeldingen tonen we opnieuw eerst de html-code, met daaronder het beeld zoals het er in de browser uitziet. ***vormgeving: de afbeelding invoer.tif moet hier in drieën geknipt worden, tot de afbeeldingen 3 4 en 5 Select Een van de meest gebruikte invoervormen is het selectveld. Dit type is eigenlijk geen veld, maar een afrolmenu met een aantal opties. Merk op dat de woorden appel, peer en banaan in het afrolmenu verschijnen, maar dat een klik op bijvoorbeeld appel de waarde rood toekent aan variable uwKeuze. De gebruiker kan in dit voorbeeld maar één keuze uit de lijst maken, maar als u de definitie verandert in , kan men meer vruchten tegelijk kiezen. tekstvlak Het volgende type is het tekstvlak (textarea), zeg maar een grotere variant van het tekstveld waarin de gebruiker een lap tekst kan typen (de waarde van die lap tekst wordt in dit geval in de variabele 'commentaar' gezet). U kunt het tekstvlak een naam geven, de breedte (cols) en hoogte (rows) instellen, aangeven dat de regels automatisch moeten omlopen (wrap= “on”), een beginwaarde toekennen (hier leeg) en de maximale lengte opgeven van de in te voeren tekst. Tekstvlakken worden over het algemeen gebruikt om de bezoeker de kans te geven eigen opmerkingen of commentaar te leveren. checkbox Het laatste type invoerveld dat we hier behandelen is de checkbox. Elke checkbox krijgt een eigen naam en waarde en de gebruiker kan een of meer van deze vakjes aanvinken. Hierin verschilt het van de radiobutton, waar men altijd maar één keuze kan maken. (Wat dat betreft is dit voorbeeld natuurlijk erg slecht gekozen; bij JA en NEE vink je normaal gesproken óf het een óf het andere aan, maar niet allebei tegelijk. Het is natuurlijk maar een voorbeeld. Hidden Tot slot bestaat er ook nog een verborgen veld (type= “hidden”), dat niet in het formulier wordt afgebeeld maar er wél gewoon deel van uitmaakt. Dit kan erg handig zijn voor als u informatie wilt meesturen die niet door de gebruiker mag worden gelezen of veranderd. javascript De informatie in een formulier hoeft niet noodzakelijkerwijs te worden doorgestuurd, maar kan ook worden gebruikt door een javascript-programma dat op dezelfde html-pagina staat. Hier kunt u bijvoorbeeld gebruik van maken wanneer u interactieve spelletjes in deze taal wilt schrijven. Zodra het javascript-programma informatie van de gebruiker nodig heeft, leest het de waardes uit de betreffende invoervelden van een formulier. En andersom, als het programma een mededeling wil doen of resultaten wil afbeelden, schrijft het die informatie in formuliervelden. setfocus Wij bekijken in dit artikel geen spelletjes, maar twee eenvoudiger stukjes javascript. Het eerste zet de 'focus' (zeg maar de cursor) op het eerste veld van een formulier, zodat de gebruiker niet eerst met de muis in dat veld hoeft te klikken als hij gegevens wil gaan invullen. Dit kost weinig moeite, maar u doet uw bezoekers er veel plezier mee! In afbeelding 6 ziet u de code. Het formulier dat we hier gebruiken is hetzelfde als in voorbeeld 1, behalve dat het invoerveld nu tekstveld heet (name=“tekstveld”). De javascript-code staat in deze afbeelding bovenaan, geschreven in bruin. De eerste regel vertelt de browser dat er een script begint in de javascript-taal. Daarna wordt er een functie gedefinieerd met de naam setfocus(). Die functie doet maar één ding: het zet de focus op het object 'tekstveld' van het object 'myform', dat ergens in de huidige pagina (object 'document') staat. Of anders gezegd: de functie roept de ingebouwde methode 'focus()' van dat object aan. Dankzij de code onload=“setfocus()” in de -tag van de pagina, zorgt de browser ervoor dat bij het inladen van de pagina meteen de functie setfocus() wordt uitgevoerd. Volgende pagina Het volgende voorbeeld van de interactie tussen formulieren en javascript is wat ingewikkelder en introduceert twee nieuwe fenomenen: de 'gewone button' en de manier om hiermee een javascript-functie aan te roepen die een nieuwe html-pagina in beeld zet. Het formulier in afbeelding 7 bevat een afrolmenu met de naam keuze (), met drie opties (die als waarde test1.htm, test2.htm en test3.htm hebben), waarbij de eerste optie al automatisch is ingevuld dankzij de toevoeging van het woord selected. Onderaan het formulier staat een nieuwe invoervorm: de button (dus geen standaard submit-button, maar een zelfgedefinieerde knop). Die button heeft als tekst “Laat zien...” en als je hier op klikt wordt de javascript-functie toon() aangeroepen (onClick=“javascript:toon()”), die op zijn beurt de gekozen htm-pagina in beeld zet via document.location.href = myform.keuze.value. ***bestelformulier.tif tabellen Tot slot nog een laatste opmerking: we hebben ons in dit overzicht niet druk gemaakt om de vormgeving, maar zeker bij grote formulieren blijkt het in de praktijk vaak lastig om alle invoervelden en bijschriften netjes op dezelfde lijn te krijgen. U kunt dit alleen oplossen door tabellen te gebruiken. Bekijk het bestelformulier in afbeelding 6 en de code waarmee dit is gemaakt (let hierbij specifiek op de breedte van de linker tabelcellen, die overal op 180 schermpixels is gezet, en op de align-aanwijzingen). Met dit voorbeeld als leidraad, ontwerpt u binnen de kortste keren zelf professionele formulieren! "

▼ Volgende artikel
Waar voor je geld: 5 alles-in-één laserprinters voor een mooie prijs
© Tim Allen
Huis

Waar voor je geld: 5 alles-in-één laserprinters voor een mooie prijs

Bij ID.nl zijn we gek op producten waar je niet de hoofdprijs voor betaalt. Een paar keer per week speuren we daarom binnen een bepaald thema naar zulke deals. Een all-in-one-printer is een handig apparaat voor het scannen, kopiëren en printen van documenten en foto's. De allerbeste afdrukkwaliteit krijg je met een laserprinter. Wij vonden vijf betaalbare modellen voor je.

Een laserprinter maakt gebruik van toner in plaats van inkt om afdrukken te produceren. Toner is een fijn poeder dat met hoge temperaturen op het papier wordt gesmolten. Dit proces zorgt ervoor dat je met grote toners kunt printen, wat betekent dat je langere tijd kunt blijven afdrukken zonder de toner te hoeven vervangen. Laserprinters zijn vaak snel en efficiënt, waardoor ze uitstekend zijn voor gebruik op kantoor. Maar ook als je thuis veel print, bijvoorbeeld als zzp'er, kan een laserprinter uitkomst bieden.

HP Color Laser 179fnw

De HP Color Laser MFP 179fnw is een van de kleinste kleurenlaserprinters in zijn klasse en is daardoor ideaal voor thuisgebruik en plekken waar niet veel plek voor een printer is. Met functies zoals printen, scannen, kopiëren en zelfs nog faxen biedt deze 4-in-1 printer een hoop veelzijdigheid. De afdruksnelheid bedraagt tot 18 pagina's per minuut in zwart-wit en 4 ppm in kleur, met een resolutie van 600 x 600 dpi.

Dankzij de automatische documentinvoer (ADF) voor 40 pagina's en wifi-verbinding is deze printer gebruiksvriendelijk en multi-inzetbaar. Hoewel de afdruksnelheid lager ligt dan bij sommige concurrenten, is zijn compacte formaat juist een pluspunt.

Brother DCP 1610W

De Brother DCP-1610W is een compacte zwart-wit laserprinter die printen, kopiëren en scannen combineert. Met een afdruksnelheid van 20 pagina's per minuut en een resolutie van 2400 x 600 dpi levert hij haarscherpe resultaten. Dankzij wifi-connectiviteit kunnen meerdere gebruikers eenvoudig draadloos printen.

De papierlade biedt plaats aan 150 vellen en het apparaat is voorzien van anti-jam-technologie om papierstoringen tot een minimum te beperken. In vergelijking met de HP Color Laser MFP 179fnw biedt deze printer geen kleurafdrukken, maar hij is wel een stuk sneller met zijn afdrukken.

HP Laserjet Pro 2Z622

De HP LaserJet Pro 2Z622 is geschikt voor onder meer kantooromgevingen. Met afdruksnelheden tot 42 pagina's per minuut en functies zoals dubbelzijdig printen, scannen, kopiëren en faxen is dit een lekker veelzijdige 4-in-1-laserprinter. Het apparaat ondersteunt zowel bekabelde als draadloze netwerken en biedt geavanceerde beveiligingsfuncties.

Canon i-SENSYS MF272wd

De Canon i-SENSYS MF272dw is een monochrome laserprinter en drukt af met en snelheid van 29 pagina's per minuut. Met een resolutie van 2400 x 600 dpi levert hij snelle en scherpe resultaten. Dankzij automatische dubbelzijdige afdrukken, wifi- en ethernetverbinding is hij veelzijdig inzetbaar.

In vergelijking met de Brother DCP-1610W levert deze Canon i-SENSYS MF272dw snellere prestaties en meer connectiviteitsopties, hoewel hij geen kleurendruk ondersteunt; dan moet je toch echt bij de HP Color Laser MFP 179fnw zijn.

Xerox B225 A4

De Xerox B225 is een zwart-wit all-in-one-laserprinter die printen, kopiëren en scannen combineert. Met een afdruksnelheid van maar liefst 34 pagina's per minuut en een eerste afdruktijd van slechts 6,4 seconden is hij goed in te zetten als je veel en vaak print. De printer beschikt over automatische dubbelzijdige afdrukken, een papierlade voor 250 vellen en kan via wifi of een vaste netwerkverbinding met je thuisnetwerk worden verbonden.

▼ Volgende artikel
Garmin kondigt Instinct 3 - Tactical Edition aan
Gezond leven

Garmin kondigt Instinct 3 - Tactical Edition aan

Garmin heeft de Instinct 3 - Tactical Edition aangekondigd, een nieuwe serie tactische smartwatches die verkrijgbaar zijn met een AMOLED-scherm of een display op zonne-energie.

De smartwatches zijn volgens Garmin ontworpen voor gebruik in uitdagende omgevingen en voorzien van een met metaal versterkte rand voor extra duurzaamheid, een rucking-activiteit voor training en ingebouwde LED-verlichting op zowel de 45mm als 50mm modellen. De batterijduur van het AMOLED-model kan oplopen tot 24 dagen in smartwatchmodus, terwijl de modellen op zonne-energie onder ideale omstandigheden onbeperkt kunnen functioneren.

Robuust ontwerp

De Instinct 3 - Tactical Edition is voorzien van een stevige constructie met een metalen versterkte rand, een behuizing van met vezels versterkt polymeer en een krasbestendig scherm. De smartwatches zijn gebouwd volgens de MIL-STD 810 norm voor thermische en schokbestendigheid en zijn waterdicht tot 100 meter. De ingebouwde zaklamp biedt variabele lichtsterktes, een groene modus om het natuurlijke nachtzicht te behouden en een stroboscoopmodus voor locatiebepaling in moeilijk terrein. Voor nachtelijk gebruik is er een NVG-modus (Night Vision Goggle) die het scherm dimt tot een niveau dat functioneel blijft voor de gebruiker maar vrijwel onzichtbaar is voor anderen.

Uitgebreide functionaliteit

De Instinct 3 - Tactical Edition beschikt over diverse speciale functies, waaronder rucking-activiteit waarmee gebruikers het gewicht van hun bepakking kunnen invoeren voor beter inzicht in hun fysieke inspanning. Deze functie kan ook worden gebruikt bij activiteiten zoals trailrunning, wandelen en hiken. Alle modellen bevatten de Applied Ballistics solver en zijn compatibel met de Applied Ballistics Quantum app.

De smartwatches zijn verkrijgbaar in twee formaten: 45mm of 50mm met display op zonne-energie, en een 50mm-variant met AMOLED-scherm. De zonne-efficiëntie is verbeterd met een grotere, efficiëntere zonnelens. Vergeleken met het vorige model heeft het nieuwe 50mm model op zonne-energie een vijf keer langere batterijduur in GPS-modus bij opladen via zonlicht.

De smartwatch biedt multi-band GPS met SatIQ technologie voor nauwkeurige positiebepaling met geoptimaliseerde batterijduur. Voor gezondheidsmonitoring houdt de Instinct 3 stappen, hartslag, slaap, zuurstofsaturatie via de pols, hartslagvariabiliteit en meer bij.

Gebruikers ontvangen e-mails, sms'jes en meldingen direct op het horloge wanneer dit is gekoppeld met een compatibele Apple of Android smartphone.

Navigatie en veiligheid

Gebruikers kunnen navigeren met een 3-assig kompas, barometrische hoogtemeter en multi-band GPS. De Instinct 3 kan worden gekoppeld met de Garmin Explore App voor gedetailleerde kaarten, waypoints en routes.

Voor gebruik op gevoelige locaties biedt de Stealth Mode de mogelijkheid om draadloze communicatie uit te schakelen terwijl het horloge nog steeds activiteitsgegevens verzamelt zonder locatiegegevens op te slaan. De Kill Switch kan alle gebruikersgeheugen wissen als de veiligheid in het geding komt. Andere functies zijn weergave van twee posities tegelijkertijd op één scherm, Jumpmaster en geprojecteerde waypoints.

Trainingsfuncties

De Instinct 3 - Tactical Edition bevat sportapps voor rucken, wandelen, hardlopen, klimmen, jagen, skiën en meer. De TracBack-functie helpt bij het uitstippelen van een route terug naar het beginpunt. Naast buitensportapps bevat de smartwatch ook apps voor HIIT, cardio, hardlopen op binnen- en buitenbanen, basketbal en andere activiteiten.

Gebruikers kunnen trainingsplannen volgen met Garmin Coach voor hardlopen en fietsen, of workouts maken uit meer dan 1.600 oefeningen in de Garmin Connect app. De smartwatch volgt ook intensiteitsminuten, VO2 max en hersteltijd.

Veiligheidsfuncties zoals incidentdetectie en Assistance kunnen een bericht met de GPS-locatie van de gebruiker naar contactpersonen sturen in noodsituaties, wanneer het horloge gekoppeld is met een smartphone.

Beschikbaarheid en prijzen

Het Instinct 3 - Tactical Edition AMOLED-model is vanaf 30 april te bestellen op Garmin.com voor een adviesprijs van 599,99 euro. De modellen op zonne-energie beginnen bij een adviesprijs van 499,99 euro.

Bekijk andere Garmin-producten op Kieskeurig.nl: