Oefening: Formulier maken
Inleiding
We maken een contactformulier voor de site van "Vespa"
![](../contact_vespa/opgave1.png)
In eerste instantie testen we dit formulier met een testscriptje dat gewoon de gegevens die doorgestuurd zijn toont.
Opgepast: in de video wordt de opgave in een andere volgorde bekeken dan in deze opgave.
Video 1 | Video 2 | Video 3
Voorbeeld
Bekijk een voorbeeld
Voorbereiding
Site in .zip formaat
Oefening
Basisformulier
- Open index.html. Stel de koppeling bij Contact in naar contact.html
- Dupliceer index.html naar contact.html, zodat deze pagina ook effectief bestaat.
- Zorg dat je in het nieuwe bestand contact.html aan het werken bent. Wijzig de titel en verwijder de oude inhoud.
- Voeg een formulier element in. Enkel de velden die binnen dit formulier-element zitten, zullen werken!
![](afbeeldingen/Knipsel.PNG)
- Voeg binnen het formulier wat ruimte toe met de Enter-knop (kwestie van wat plek te hebben om te werken)
- Maak binnen het formulier een tekstvak voor de Naam.
![](afbeeldingen/Knipsel2.PNG)
Geef via het Eigenschappen-venster als Name in: doorgestuurde_naam doorgestuurd worden.
- Het tekst veld toont 25 karakters.
- De naam mag maximum 100 karakters lang zijn.
- Dit venster is verplicht (Required).
- Maak een invoerveld voor E-mail.
![](afbeeldingen/knipsel3.PNG)
Name: doorgestuurd_mailadres
- Het tekst veld toont 25 karakters.
- Het mailadres mag maximum 100 karakters lang zijn.
- Dit venster is verplicht (Required).
CSS-stijl
- We zitten nu met twee tekstvelden (met label) naast elkaar. Via CSS stellen we die in, zodat ze in rijen onder elkaar komen.
- Klik op het label, en maak een CSS-regel aan voor het label-element, met als eigenschappen:
display: block (zodat het element zich als een block-element gedraagt en beter via CSS manipuleerbaar is (cfr a-element)
width: 49% zodat alle labels dezelfde breedte (nl. net niet de helft) innemen van de beschikbare ruimte. Waarom geen 50%? Omdat er nog witruimte van andere elementen meespeelt. Met 49% breedte kunnen we dit opvangen.
float: left; (zodat het altijd links zweeft, en het veld ernaast komt te staan)
clear: left (zodat een label zeker altijd op een nieuwe lijn komt te staan, bij een breedte van bv. 200px zouden er meerdere labels op één lijn kunnen passen maar dat willen we niet)
optioneel:
text-align: right (zodat de label-tekst rechts uitlijnt, en tegen de invulvelden zal staan)
- Klik op het invulveld. Maak een nieuwe kiezer aan voor het element input, met als eigenschap display: block. Stel eventueel ook een breedte (bv. ook 49%) in. Gebruik geen clear, want dan zal het invulveld ook telkens op een nieuwe regel terechtkomen.
Normaal gezien komen label en inputveld nu naast elkaar.
Andere velden
- De 3e rij wordt een invoer van een Wachtwoord. (doorgestuurd_paswoord)
- Het tekstveld toont 25 karakters.
- Het wachtwoord mag maximum 6 karakters lang zijn.
- Op de 4e rij komt Bericht met een groot tekstveld doorgestuurde_commentaar.
![](afbeeldingen/Knipsel6.PNG)
Het veld is 30 tekens breed en 5 lijnen hoog.
- Op de laatste rij komt een knop Verzenden die het formulier doorstuurt.
![](afbeeldingen/knipsel7.PNG)
Deze knop heeft als naam verzendknop.
- Stel de actie in en de methode van het formulier:
- Selecteer via de statusbalk (of via de code) het <form>-element.
- Stel via eigenschappen in:
- Actie: http://www.kreatuur.be/pcvo/scripts/dump_form.php
- Methode: GET
Het serverscript ontvangt de gegevens die je doorgestuurd hebt en toont ze in een lijstje.
De bedoeling van dit script is enkel te controleren of de gegevens doorgestuurd zijn.
- Bekijk dit resultaat in een browser en test de verschillende velden. Bekijk ook de URL-balk.
- Wijzig de methode van het formulier naar POST en bekijk de URL-balk. Welk verschil zie je t.o.v. daarnet, toen de methode nog op GET stond?
Andere formulier-elementen invoegen
- Typ volgende tekst in Wat zijn uw hobbies?
- Daaronder komen een aantal aanvinkveldjes Je kan verschillende vinkjes aanvinken.
- Toevallig: name hobby1, value netfl.
- Zoekmachine: name hobby2, value gm.
- Vrienden : name hobby3, value tk.
- In de volgende rij komt: Wat is uw geslacht?
Gebruik <br> (Shift-Enter) om ze onder elkaar te krijgen.
![](../contact_vespa/geslacht.png)
- Man, value = m
- Vrouw, value = v
- Genderfluïde, value = g
- Non-binair, value = nb
- ... enzovoort.
- Geef elke radiobutton in het Eigenschappenvenster dezelfde naam, zodat er maar één keuze kan aangeklikt worden, wat de bedoeling is van radiobuttons.
- Voeg een keuzelijst toe.
![](../contact_vespa/land.png)
- België >B
- Nederland > NL
- Ander > A
CSS-opmaak
Opgepast: in de video worden hier andere kleuren en opmaak gebruikt. Beslis zelf welke kleuren je gebruikt, en hoe je alles vormgeeft. Dit dient enkel als inspiratie. In de video worden soms "circus-kleuren" gebruikt, zodat je beter ziet welke breedte de elementen innemen. Achteraf kan je die circus-kleuren altijd weer uit je CSS verwijderen.
- Definieer een CSS opmaak voor de element input enkel op deze pagina.
- Background: lichtgrijs.
- Border: Dotted, 1px, donkergrijs.
- Doe hetzelfde voor het element textarea en select. (grote tekstkaders en uitklapmenu's bestaan namelijk uit een ander HTML-element)
- Bekijk het resultaat in een browser.
- Voeg een CSS opmaak toe die de input velden een gele achtergrond geeft wanneer ze geselecteerd zijn. Gebruik hiervoor de tag input:focus (via geavanceerd). Input:focus staat voor invulveld waarin geklikt wordt.
![](afbeeldingen/9.gif)
- Extra: maak speciale classes aan (en pas deze toe) om de radiobuttons en selectievakjes een achtergrondkleur te geven.
- Extra 2: test de werking van input:hover (via geavanceerd) uit.
Formulier dat email verzendt
Deze geavanceerde methode heb je nodig wanneer je betalende php-hosting hebt. Dit wordt niet in de video besproken, maar je kan het gerust uitproberen.
Succescriteria voor deze oefening
Je kan
- een formulier-element toevoegen
- invulvelden toevoegen
- invulvelden laten valideren
- uitklapmenu's maken en instellen
- radioknoppen en aanvinkvakjes maken in instellen
- het formulier laten verwerken via een script
Leerdoelen
Leerinhoud |
Lesinhoud |
1-Elementaire websites aanmaken en analyseren |
1.4.Formulieren integreren
1-aanmaak
2-wijzigen
3-esultaten verzenden
4-Resultaten verwerken
|