FAQ: Hvordan kan jeg sende mine besøgende videre til en anden side efter de har udfyldt og sendt min formular?

A: Det kommer an på. Hvis du bruger et cgi script til at forarbejde dine formularer (langt at foretrække) så er den mulighed sandsynligvis indeholdt, enten ved at du angiver det i et 'Hidden field' eller det kan ligge i selve scriptet. Uanset hvad, læs vejledningen for scriptet.

Hvis du bruger mailto formularer er der stadig noget vi kan gøre. Du skal bare være opmærksom på at mailto formularer kan være upålidelige afhængigt af brugerens browser/email opsætning. Enkelte kan have svært ved at sende data'ene. (Hvor mange? 5%? 20%? Flere? Jeg ved det ikke.)

Mailto redirect kræver også JavaScript, og selvom de fleste har brugen af JavaScript aktiveret, så vil de der ikke har, ikke blive viderestillet. Så med alle disse advarsler... her følger, hvordan du med JavaScript redirecter en mailto form:

Skriv først dette ind i HEAD'en på dit dokument...

<SCRIPT language="JavaScript"><!--
function FormRedirect(){
setTimeout('this.document.location.href = "side.html"',5000);}
//--></SCRIPT>

Hvor side.html er URL'en til dokumentet, der viderestilles til.

Føj så følgende til dit FORM tag...

onSubmit="FormRedirect()"

Herunder følger en eksempel.

<FORM NAME="myform" METHOD=POST ACTION="mailto:abc@123.org"
      ENCTYPE="text/plain" onSubmit="FormRedirect()">
<INPUT TYPE="text" NAME="mintekstboks" VALUE="">
<INPUT TYPE="submit" VALUE="Send">
</FORM>

Bemærk de 5000 i funktionen. Det er en 5000 millisekund forsinkelse (5 sekunder) og det er nødvendigt for at browseren skal kunne nå at sende de indtastede data før der redirectes. Hvis browseren er længere end 5 sekunder om at sende, så redirectes der under alle omstændigheder og det indtastede forsvinder på de evige bitmarker, og ligesådan hvis mailto funktionen svigter. (Faktisk er der en chance for at de indtastede data stadig er der, hvis brugeren anvender browserens Tilbage knap. Men med mindre han yder en indsats, får du det aldrig at se.)

Desværre er en sådan løsning ikke den klogeste i verden. I de fleste tilfælde vil det virke, som planlagt, men det vil være som et korthus. Et korthus ser pænt ud, men der tager ikke lang tid at vælte det.


En lille ting mere inden vi pakker sammen. Når du lægger en mailform på din side og nogen sender dig information vil du se, at det sendes med et default emne. Hvis din bruger anvender Netscape får du følgende emne "Form posted from Mozilla". Andre browsere sender måske "Form Response", osv.

Du kan ændre dette i <FORM> tag'et således...

<FORM METHOD=POST ACTION="mailto:robin@batman.org?subject=Hellige Makrel!" ENCTYPE="text/plain">

Ret køligt, hva?

Du skal dog lige vide, at der er stadig enkelte browsere, der ikke kan håndtere et emne på denne måde. Det vil se ud som om data er blevet sendt, men i virkeligheden er de forsvundet ud i intetheden. Så, hvis en mistet response i ny og næ betyder noget for dig, så lad være med at specificere et emne.

Hvis du sprang over den del i begyndelsen, der handlede om CGI scripts, så synes jeg du skulle tage en tur tilbage og blive bekendt med processen. Som jeg har sagt før, mailto forms kan være lidt besværlige og/eller upålidelige for en procentdel af dine brugere, og hvis du bryder dig om disse potentielle problemer, så bør du bruge et form mail script.