Werken met formulieren
In dynamische sites komt het veel voor dat de gebruiker via een HTML-formulier gegevens
naar de server stuurt. Met ASP kunnen we die gegevens gebruiken om bijvoorbeeld op te
slaan in een database, te versturen via een email of juist andere gegevens op te zoeken.
De gegevens in een formulier kunnen op twee manieren naar de server gestuurd worden, met de
POST of met de GET methode. Met
POST worden de gegevens naar de server gestuurd als onderdeel van
de HTTP headers, met GET als onderdeel van de URL. In het laatste
geval staan de gegevens achter een ? dat achter de bestandsnaam staat:
http://www.voorbeeld.nl/voorbeeld.asp?naam=Jan%20Smit&land=Nederland
De verschillende waarden worden gescheiden door & tekens, verder worden bijvoorbeeld
spaties gecodeerd zodat er geen onbruikbare URL ontstaat. GET
heeft als nadeel dat de gegevens deel uit maken van de URL, wat vooral onhandig is als
het om bijvoorbeeld een password gaat. Verder is de lengte van een URL beperkt, voor
de meeste browsers tot ongeveer 1.000 karakters.
Welke manier je ook gebruikt, de waarden in het formulier zijn ALTIJD van het subtype
String. Dit betekent dat als je een getal verstuurt deze toch nog eerst geconverteerd moet
worden naar een getal subtype zoals Integer, Long, Single of Double. Dit kan respectievelijk
met de functies CInt(), CLng(),
CSng() en CDbl().
Gegevens gebruiken met de POST methode
Wanneer de POST methode is gebruikt, kunnen we waardes uitlezen
uit de Form Collectie van het Request object met de opdracht
Request.Form("NaamVanWaarde"). Hieronder zie je een voorbeeld van
het HTML formulier en vervolgens de code om er wat mee te doen.
form1.asp
<HTML>
<BODY>
<form method="POST" action="form1post.asp">
<table>
<tr>
<td>
Naam
</td>
<td>
<input type="text" name="naam">
</td>
</tr>
<tr>
<td>
Land
</td>
<td>
<input type="text" name="land">
</td>
</tr>
</table>
<input type="submit" value="Verstuur">
<form>
</BODY>
</HTML>
form1post.asp
<%
Option Explicit
%>
<HTML>
<BODY>
<%
Response.Write "Hallo " & Request.Form("naam") & " uit " & Request.Form("land")
%>
</BODY>
</HTML>
Gegevens gebruiken met de GET methode
Wanneer de GET methode is gebruikt, kunnen we waardes uitlezen
uit de QueryString Collectie van het Request object met de opdracht
Request.QueryString("NaamVanWaarde"). Hieronder zie je een
voorbeeld van het HTML formulier en vervolgens de code om er wat mee te doen.
form2.asp
<HTML>
<BODY>
<form method="GET" action="form2get.asp">
<table>
<tr>
<td>
Naam
</td>
<td>
<input type="text" name="naam">
</td>
</tr>
<tr>
<td>
Land
</td>
<td>
<input type="text" name="land">
</td>
</tr>
</table>
<input type="submit" value="Verstuur">
<form>
</BODY>
</HTML>
form2get.asp
<%
Option Explicit
%>
<HTML>
<BODY>
<%
Response.Write "Hallo " & Request.QueryString("naam") & " uit " & Request.QueryString("land")
%>
</BODY>
</HTML>
|