Vraag & Antwoord

Webprogrammeren & scripting

Eenbeetje hulp met een formulier

5 antwoorden
  • Hallo, Ik ben bezig met een site en daarop moet een formulier komen. Nu ben ik geen html expert, maar de site ziet er toch wel aardig uit. Met formulieren heb ik helemaal geen ervaring. Ik weet dat er 2 mannieren zijn....via email en iets anders. Ik wil er graag een formulier mee berijken dat er ongeveer zo uitziet: [code:1:bfde7a2847] <HTML> <HEAD> <TITLE> Actieformulier </TITLE> </HEAD> <BODY> <FORM METHOD="POST" TITLE="Actie Formulier" ACTION="MAILTO:email"> <INPUT TYPE="text" NAME="Naam" SIZE="50" MAXLENGTH="150" VALUE="naam (niet verplicht)"> Naam.<br> <INPUT TYPE="text" NAME="adres" SIZE="50" MAXLENGTH="150" VALUE="adres (niet verplicht)"> Adres.<br> <INPUT TYPE="text" NAME="postcode" SIZE="6" MAXLENGTH="10" > Postcode (van belang voor beschikbaarheids check).<br> <INPUT TYPE="text" NAME="emailadres" SIZE="50" MAXLENGTH="150" value="email verplicht" > Email adres.<br> <p> <TEXTAREA NAME="Notitie" ROWS="5" COLS="80">"Plaats hier additionele informatie. Vragen kunnen worden gesteld via email (zie contact)." </TEXTAREA><br> <p>Bla,Bla,Bla.<br> <INPUT TYPE="radio" NAME="t1"> text1.<br> <INPUT TYPE="radio" NAME="t2"> text2.<br> <INPUT TYPE="radio" NAME="t3"> text3.<br> <p> <INPUT TYPE="radio" NAME="nieuwsbrief"> Houd mij op de hoogte via mijn emailadres<br> <p> <INPUT TYPE="reset" VALUE="Reset"> <INPUT TYPE="submit" NAME="Verzenden" VALUE="Submit"> </FORM> </BODY> </HTML> [/code:1:bfde7a2847] Nu is dit vrij simpel maar het gaat om het principe, als ik weet hoe het werkt dan lukt het mij verder wel. Deze informatie moet overzichtelijk verwerkt worden. Ook zou ik graag willen dat het formulier alleen wordt verzonden als er een emailadres in ingevuld. Hoe pak ik dit het beste aan, zoal ik al zij weet ik helemaal niet hoe dit werkt. Welke techniek moet ik gebruiken ?
  • Zoals je het hier doet ben je al aardig op weg. Wat er nog moet gebeuren voor de controle van het e-mailadres is eigenlijk een beetje afhankelijk van de wijze waarop je de verwerking van het formulier laat verlopen en de mate van 'strengheid' van je controle. In je voorbeeld gebruik je een "mailto:" action van je <form>. Dit houdt dus in dat je de mailclient van je bezoeker gebruikt en dat de controle van het e-mailadres dus client-side (lees: javascript) moet worden uitgevoerd. Hiervoor kan je gebruikmaken van de [url=http://www.devguru.com/Technologies/ecmascript/quickref/evhan_onsubmit.html]onsubmit[/url] eventhandler (afhandeling van een gebeurtenis) van het form. Bijvoorbeeld (uit de losse pols, dus geen garantie dat het ook vlekkeloos werkt): [code:1:143fad0c40] <script type="text/javascript"> // This function validates an e-mailaddress before submitting the form function validateEmail(oForm) { var sEmailaddress = oForm.elements['emailadres'].value; var bEmailIsValid = true; // Length of address must be greater than 5 (x@x.x) if (sEmailaddress.length <= 5) { bEmailIsValid = false; } // Address must contain a @ and a "." if (sEmailaddress.indexOf("@") == -1 || sEmailadress.indexOf(".") == -1) { bEmailIsValid = false; } // Show an alert if the supplied address is not valid. if (bEmailIsValid == false) { alert("Het ingevoerde e-mailadres is niet correct."); } // If address is valid then submit the form. return (bEmailIsValid); } </script> <form action="mailto:e-mail" onsubmit="return validateEmail(this)"> <!-- rest van je formulier --> [/code:1:143fad0c40] De controle op de geldigheid van het adres kan je in bovenstaande functie natuurlijk makkelijk uitbreiden naar eigen smaak. Hiervoor zijn meerdere voorbeelden te vinden op het internet (of op dit forum). Bijvoorbeeld controles met behulp van reguliere expressies. Alleen moet je je natuurlijk afvragen hoe ver je hierin wil gaan en of het nog nut heeft. Als je de verwerking van het formulier server-side doet (via een formmail script bijvoorbeeld) dan kan je de controle vertalen naar de betreffende taal en toevoegen aan je script. Kijk voor voorbeelden van dit soort scripts bijvoorbeeld eens op [url=http://www.hotscripts.com]hotscripts[/url]. Als je gebruikmaakt van een standaard formmailer die bijvoorbeeld door je hoster wordt aangeboden kijk dan eens naar de mogelijkheden van dat script. Misschien dat deze al iets dergelijks aan functionaliteit biedt. Succes.
  • Bedankt, Er zijn ook 2 methodes om formulieren te versturen. Welke zou het handigst zijn en hoe pak je dat aan ?
  • Het beste is imho het formulier serverside afhandelen (itt gebruikmaken van de mailclient van je bezoeker). Daarvoor heb je een script nodig en een server die dit ondersteund. Heeft je server cq. provider een eigen formmailer gebruik die dan. Heb je ook de mogelijkheid om een eigen formmailer te gebruiken dan heeft dat over het algemeen de voorkeur. Schrijf deze zelf of kijk op www.hotscripts.com voor eentje die het best bij je behoefte past. Heb je absoluut geen mogelijkheid om iets met serverside scripts te doen dan kan je ook eens kijken naar remotely hosted scripts (deze staan dan op de server van iemand anders). Daarvoor kan je ook bij hotscripts terecht.
  • Serverside, bedoel je dan met cgi ? Ik kan een CGI-bin gebruiken. Wat ik me dan afvraag is hoe het formulier wordt verwerkt. Moet je dan geen database hebben draaien, mysql of zo ? Het checken op ingevuld emailadres lukt nu wel, dat is niet het probleem. Ik zit met het volgende. Is het niet beter om alle ingestuurde mailtjes niet naar mijn emailadres te sturen, maar door zo'n cgi script te laten verwerken ? Dan kan ik beter overzicht houden als alles netjes in een tabel staat, of werkt dat zo niet ?

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.