Avatar billede ghml Nybegynder
05. juni 2004 - 01:58 Der er 9 kommentarer og
1 løsning

Spørgsmål til formmail

Hej

Jeg har et spørgsmål om en formmail som skal kunne lave en lille "beregning".

Når man indtaster en værdi i feltet, skal den gå til en underside hvis værdien er lig med noget bestemt.

Eks.:
Hvis man skriver "Pernille" i feltet, skal den gå til den underside som er /fejl.html

Er der en værdi, i stil med måske "required" altså hvor formmailen kan se om et bestemt felt ER udfylt ellers godkender den ikke afsendelse. I dette tilfælde er det så bare nogle bestemte ting som ikke må stå i feltet og så skal den reagere på at den ikke må sende.

Det er fordi jeg er ved at lave en side hvor man kan oprette en email adresse, og hvis mail adressen allerede er optaget skal den sige at den kan man ikke oprette.

På forhånd tak. Jeg giver max point for et svar jeg kan bruge!
Avatar billede roenving Novice
05. juni 2004 - 02:05 #1
Ehrmn ...

Hvor er de værdier du skal validere imod ?-)

Hvis det skal gøres online, er det jo nødvendigt, at der findes noget at sammenligne med, feks. en javascript-database ...
Avatar billede titad Nybegynder
05. juni 2004 - 02:07 #2
hvis du ligge alle de rigstrede e-mails ind i en database, og så søger den igennem om den findes så siger den fejl... hvis man laver en formel der siger hov fejl e-mail allre i brug..
Avatar billede ghml Nybegynder
05. juni 2004 - 02:47 #3
roenving>> De værdier forstiller jeg mig at man hele tiden opdaterer på siden, det vil jeg ikke have noget imod.

titad>> Smart med en database, jeg har bare ikke forstand på at lave databaser på nuværende tidspunkt.
Avatar billede roenving Novice
05. juni 2004 - 13:00 #4
Jeg har stadig svært ved at se, hvor dine data kommer ind, men hvis du kan indsætte en liste over dem kan der nemt laves en database, som checker ...

Men du skal jo dem fra den database, du nødvendigvis må have til at registrere de allerede oprettede, det kan være en tekstfil, som du læser serverside, eller du kan hardcode det ind:

<script type="text/javascript">
var mails = new Array();

mails['Pernille'] = '/fejl.html';
mails['Søren'] = '/fejl.html';
mails['Anker'] = '/fejl.html';
mails['ghml'] = '/fejl.html';
mails['ikke-ghml'] = '/optaget.html';

function valider(f){
  if(mails[f.mail.value]!=undefined){
    f.action = mails[f.mail.value];
  }
  return true;
}
</script>

<form action="registrer.html" ... onsubmit="return valider(this);">
<input type="text" value="Din mail-adresse" onfocus="this.value='';">@ditDomæne.dk
<br>
<input type="submit" value="Send din ny mail">
</form>
Avatar billede ghml Nybegynder
06. juni 2004 - 00:03 #5
roenving >>

Tak for den flotte hjælp.
Der kommer ikke til at blive oprettet særlig mange mailadresser (1 pr måned) så jeg har intet problem i at opdatere kildekoden med de nye adresser som er optaget, og det er en nem og billig-html løsning (helst uden database) jeg søger.

Tak for det forslag du har lavet ovenfor. Når jeg trykker på "SEND DIN NY MAIL" efter at have tastet "Pernille" i feltet, går den videre til: http://www.kontaktos.dk/registrer.html? skulle den ikke gå til http://www.kontaktos.dk/fejl.html når adressen er optaget ?

Prøv at se koden i funktion her:
http://www.kontaktos.dk/test1.htm
Avatar billede roenving Novice
06. juni 2004 - 00:15 #6
Uff, der mangler jo feltnavnet i inputtet:

<input type="text" name="mail" value="Din mail-adresse" onfocus="this.value='';">@ditDomæne.dk

-- og så skal du fjerne de tre punktummer i form-tagget !-)

-- og jeg kom til at tænke på, at man jo normalt ikke kender forskel på små og store bogstaver, så du bør nok skrive alle navnene med småt og så:

function valider(f){
  if(mails[f.mail.value.toLowerCase()]!=undefined){
    f.action = mails[f.mail.value.toLowerCase()];
  }
  return true;
}
Avatar billede ghml Nybegynder
07. juni 2004 - 01:43 #7
roenving>> Nu virker det du er bare rigtig god! tak! vær sød at oprette et svar
Avatar billede ghml Nybegynder
07. juni 2004 - 01:45 #8
jeg kan se at den overfører værdien på det indtastede i næste rude af URL adressen "eks. http://www.kontaktos.dk/registrer.html?mail=kim" hvordan kan jeg bruge det i formmailen på næste side??? eller kan det ikke bruged?
Avatar billede roenving Novice
07. juni 2004 - 01:59 #9
Hvis du ikke har angivet method='post' i dit form-tag, vil den overføre felt-værdier som get, dvs. som værdier i url'en, ja !-)

På registrer.html kan du hente værdierne med følgende, den skal dog udformes anderledes, hvis du har andre formfelter med i url'en også:

<script type="text/javascript">
function getMail(){
  s = location.search;
  if(s){
    s = s.substring(1).split"=";
    if(s[0]=='mail')
      document.FORMNAME.FELTNAME.value = s[1];
  }
}
</script>

Det skal så aktiveres onload:

<body onload="getMail();">

Husk også at have en form med name="FORMNAME", som har et felt med name="FELTNAME" ...

-- og med absolut sikkerhed for at den kun kaldes med den parameter sat, kunne det gøres kortere, men det har ingen reel betydning ...

-- og så skal du selv beholde de fleste point selv, da det jo ikke var et spørgsmål, som var svært^3 + lidt ekstra !-)

-- velbekomme '-)
Avatar billede roenving Novice
07. juni 2004 - 15:27 #10
-- tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester