Avatar billede denflinkelaanehaj Nybegynder
02. april 2007 - 17:06 Der er 9 kommentarer og
1 løsning

fra form til tekstgenerator

Jeg skal til en hjemmeside bruge en slags tekstgenerator hvor et "resultat-felt" automatisk vises med en tekst der er afhængigt af hvad brugeren har udfyldt i en form med selectboxe, radiobuttons og fritekstfelt.

Det der skal dannes er den tekst brugeren skal skrive i en sms som tilmelding til et sms-nyhedsbrev.

Hvis brugeren f.eks. kan vælge hvornår han ønsker at modtage nyheds-sms'er, hvilken type nyheder han er interesseret i, hvor han har hørt om siden og hvad han hedder, kunne han i formen have valgt følgende:
"Lørdage" og "Helligdage" (check-boxe)
"Anders" (fritekstfelt)
"Rabatter" og "Nye varer" (check-boxe)
"Lokalavisen" (radiobuttons)

I resultatfeltet som vises når han trykker på "send" skal der så stå følgende:
____________________

(Fast forklarende tekst:) Skriv følgende tekst nøjagtigt (husk mellemrum) i en sms og send den til 1231:
(Resultatfelt:) tilmeld nyt anders 2 1 5 3

(Fast forklarende tekst:) Tjenesten er gratis. Det koster kun alm. sms-takst.
Der er uden uden betydning om du skriver det med små eller store bogstaver.
____________________

Tallene 2 1 5 3 er så "oversættelsen" af det han har udfyldt i formen, så at sige. Det kunne også være bogstaver, men nu er det så tal i eksemplet.

Er der nogen der kan hjælpe med et sådant script? Enten med din egen kode, links til hvor jeg kan finde et sådant script, eller pege mig i den rigtige retning for hvor jeg finder nogen der laver sådan noget hulens billigt, da det ikke er til kommercielt brug som sådan.

Håbefuld hilsen,
DFL
Avatar billede roenving Novice
02. april 2007 - 21:19 #1
Tjah, tjoh, lidt kryptisk ...

-- jeg ville jo forvente en godkendelse, når det var den slags, og så ville jeg jo kaste den forklarende tekst udenfor tekst-feltet, men f.eks.

<form ... onsubmit="generateText(this);return false;">

...

Hverdage: <input type="checkbox" name="check1" value="1a"><br>
Lørdage: <input type="checkbox" name="check1" value="1b"><br>
Søndage: <input type="checkbox" name="check1" value="1c"><br>
Helligdage: <input type="checkbox" name="check1" value="1d"><br>

...

<input type="text" name="navn"><br>

...

Rabatter: <input type="checkbox" name="check2" value="2a"><br>
Nye varer: <input type="checkbox" name="check2" value="2b"><br>
Særtilbud: <input type="checkbox" name="check2" value="2c"><br>

...

<div id="textToSend">
Skriv følgende tekst nøjagtigt (husk mellemrum) i en sms og send den til 1231:
<textarea name="sendText" cols="70" rows="5"></textarea><br>
Tjenesten er gratis. Det koster kun alm. sms-takst.<br>
Der er uden uden betydning om du skriver det med små eller store bogstaver.
</div>
</form>

<script type="text/javascript">
function generateText(f){
  var txt = "tilmeld " + f.navn.value;
  var elm1 = f.check1;
  for(i=0,im=elm1.length;im>i;i++){
    txt += elm1[i].selected ? " " + elm1[i].value : "";
  }
  var elm2 = f.check2;
  for(i=0,im=elm2.length;im>i;i++){
    txt += elm2[i].selected ? " " + elm2[i].value : "";
  }
  document.getElementById("textToSend").style.display="block";
  f.sendText.value = txt;
}
</script>
Avatar billede roenving Novice
02. april 2007 - 21:20 #2
Hrm, en lille forglemmelse:

<div id="textToSend" style="display:none;">
Avatar billede denflinkelaanehaj Nybegynder
04. april 2007 - 06:08 #3
roenving>
Jeg er ikke med på hvad du mener når du skriver "jeg ville jo forvente en godkendelse, når det var den slags" ...??

Jeg kan godt se at jeg vist ikke har forklaret det godt nok.
Jeg er næsten blank hvad javascripts angår, og har ikke rigtig nogen chance for selv at finde på noget der ikke umiddelbart virker lige til at ændre, så det skal nok forklares til mig i børnehøjde hvad jeg skal gøre :)

Jeg har nu følgende (som dog ikke virker):

<form onsubmit="generateText(this);return false;">

<p>
            På hvilke dage kan du modtage nyheds-sms'er?<br/>
            <input type="radio" name="dage" value="hverdage"/>Kun på almindelige hverdage<br>
            <input type="radio" name="dage" value="weekend"/>Kun i weekender og på helligdage<br>
            <input type="radio" name="dage" value="alle"/>Alle dage
        </p>


<p>
            I hvilket tidsrum kan du modtage nyheds-sms'er i?<br/>
            <input type="radio" name="tider" value="1014"/>Kl. 10.00-14.00<br>
            <input type="radio" name="tider" value="1422"/>Kl. 14.00-22.00<br>
            <input type="radio" name="tider" value="1022"/>Kl. 10.00-22.00
        </p>


        <p>
            Hvad er du interesseret i at modtage nyheds-sms'er om?<br/>
            <input type="checkbox" name="nyheder" value="nyt"/>
            Nyheder<br>
            <input type="checkbox" name="tilbud" value="til"/>
            Tilbud<br>
            <input type="checkbox" name="konkurrencer" value="kon"/>
            Konkurrencer
        </p>


<p>
            <input type="button" value="Vis sms-tekst"/>
        </p>



<div id="textToSend" style="display:none;">
Skriv følgende tekst nøjagtigt (husk mellemrum) i en sms og send den til 1231:
<textarea name="sendText" cols="70" rows="1"></textarea><br>
Tjenesten er gratis. Det koster kun alm. sms-takst.<br>
Der er uden betydning om du skriver med små eller store bogstaver.
</div>
</form>

<script type="text/javascript">
function generateText(f){
  var txt = "tilmeld nyhedsbrev " + f.dage.value;
  var elm1 = f.tider;
  for(i=0,im=elm1.length;im>i;i++){
    txt += elm1[i].selected ? " " + elm1[i].value : "";
  }
  var elm2 = f.nyheder;
  for(i=0,im=elm2.length;im>i;i++){
    txt += elm2[i].selected ? " " + elm2[i].value : "";
  }
  var elm2 = f.tilbud;
  for(i=0,im=elm2.length;im>i;i++){
    txt += elm2[i].selected ? " " + elm2[i].value : "";
  }
  var elm2 = f.konkurrencer;
  for(i=0,im=elm2.length;im>i;i++){
    txt += elm2[i].selected ? " " + elm2[i].value : "";
  }
  document.getElementById("textToSend").style.display="block";
  f.sendText.value = txt;
}
</script>

Hvad skal være anderledes?

/DFL
Avatar billede roenving Novice
04. april 2007 - 23:13 #4
Måske

<script type="text/javascript">
function generateText(f){
  var txt = "tilmeld nyhedsbrev ";
  for(i=0,im=f.dage.length;im>i;i++){
    if(f.dage[i].checked){
      txt += f.dage[i].value;
  }
  var elm1 = f.tider;
  for(i=0,im=elm1.length;im>i;i++){
    txt += elm1[i].selected ? " " + elm1[i].value : "";
  }
  var elm2 = f.nyheder;
  for(i=0,im=elm2.length;im>i;i++){
    txt += elm2[i].selected ? " " + elm2[i].value : "";
  }
  var elm2 = f.tilbud;
  for(i=0,im=elm2.length;im>i;i++){
    txt += elm2[i].selected ? " " + elm2[i].value : "";
  }
  var elm2 = f.konkurrencer;
  for(i=0,im=elm2.length;im>i;i++){
    txt += elm2[i].selected ? " " + elm2[i].value : "";
  }
  document.getElementById("textToSend").style.display="block";
  f.sendText.value = txt;
}
</script>
Avatar billede denflinkelaanehaj Nybegynder
05. april 2007 - 03:03 #5
roenving>

Der sker intet når jeg trykker på knappen... og jeg har intet textfelt??
Avatar billede roenving Novice
05. april 2007 - 23:43 #6
Hrm, en tavetosse, for det skal være checked og ikke selected, og så nogle andre småting, så sådan:

<form onsubmit="generateText(this);return false;">

<p>
            På hvilke dage kan du modtage nyheds-sms'er?<br/>
            <input type="radio" name="dage" value="hverdage"/>Kun på almindelige hverdage<br>
            <input type="radio" name="dage" value="weekend"/>Kun i weekender og på helligdage<br>
            <input type="radio" name="dage" value="alle"/>Alle dage
        </p>


<p>
            I hvilket tidsrum kan du modtage nyheds-sms'er i?<br/>
            <input type="radio" name="tider" value="1014"/>Kl. 10.00-14.00<br>
            <input type="radio" name="tider" value="1422"/>Kl. 14.00-22.00<br>
            <input type="radio" name="tider" value="1022"/>Kl. 10.00-22.00
        </p>


        <p>
            Hvad er du interesseret i at modtage nyheds-sms'er om?<br/>
            <input type="checkbox" name="nyheder" value="nyt"/>
            Nyheder<br>
            <input type="checkbox" name="tilbud" value="til"/>
            Tilbud<br>
            <input type="checkbox" name="konkurrencer" value="kon"/>
            Konkurrencer
        </p>


<p>
            <input type="submit" value="Vis sms-tekst"/>
        </p>



<div id="textToSend" style="display:none;">
Skriv følgende tekst nøjagtigt (husk mellemrum) i en sms og send den til 1231:<br>
<textarea name="sendText" cols="70" rows="1"></textarea><br>
Tjenesten er gratis. Det koster kun alm. sms-takst.<br>
Der er uden betydning om du skriver med små eller store bogstaver.
</div>
</form>

<script type="text/javascript">
function generateText(f){
  var txt = "tilmeld nyhedsbrev ";
  for(i=0,im=f.dage.length;im>i;i++){
    if(f.dage[i].checked)
      txt += f.dage[i].value;
  }
  var elm1 = f.tider;
  for(i=0,im=elm1.length;im>i;i++){
    txt += elm1[i].checked ? " " + elm1[i].value : "";
  }
  var elm2 = f.nyheder;
    txt += elm2.checked ? " " + elm2.value : "";
  var elm2 = f.tilbud;
    txt += elm2.checked ? " " + elm2.value : "";
  var elm2 = f.konkurrencer;
    txt += elm2.checked ? " " + elm2.value : "";
  document.getElementById("textToSend").style.display="block";
  f.sendText.value = txt;
}
</script>
Avatar billede denflinkelaanehaj Nybegynder
06. april 2007 - 02:24 #7
JÆS... det virker jo :)

Du må lige skrive et svar hvis du skal have points, jo.

Da du jo allerede har løst opgaven, kan jeg jo dårligt forlange mere... men hvis du vil, ville det være fantastisk hvis du kunne hjælpe mig med følgende 2 småting:

1: Kan den genererede tekst der står i textarea blive vist sådan at man IKKE selv kan rette i det?
Ved jo ikke om der findes sådan en type felt.

2: Kan der være en værdi hvis...
            <input type="checkbox" name="nyheder" value="nyt"/>
            Nyheder<br>
            <input type="checkbox" name="tilbud" value="til"/>
            Tilbud<br>
            <input type="checkbox" name="konkurrencer" value="kon"/>
            Konkurrencer
... er unchecked?
Altså ligesom det er "nyt" "til" og "kon" bliver der skrevet "nej" "nej" og "nej" i den tekst der genereres?

/DFL
Avatar billede roenving Novice
06. april 2007 - 02:37 #8
Jepz, begge dele er på "sæ'fø'li'"-niveauet ...

Eksempelvis:

<form onsubmit="generateText(this);return false;">

<p>
            På hvilke dage kan du modtage nyheds-sms'er?<br/>
            <input type="radio" name="dage" value="hverdage"/>Kun på almindelige hverdage<br>
            <input type="radio" name="dage" value="weekend"/>Kun i weekender og på helligdage<br>
            <input type="radio" name="dage" value="alle"/>Alle dage
        </p>


<p>
            I hvilket tidsrum kan du modtage nyheds-sms'er i?<br/>
            <input type="radio" name="tider" value="1014"/>Kl. 10.00-14.00<br>
            <input type="radio" name="tider" value="1422"/>Kl. 14.00-22.00<br>
            <input type="radio" name="tider" value="1022"/>Kl. 10.00-22.00
        </p>


        <p>
            Hvad er du interesseret i at modtage nyheds-sms'er om?<br/>
            <input type="checkbox" name="nyheder" value="nyt"/>
            Nyheder<br>
            <input type="checkbox" name="tilbud" value="til"/>
            Tilbud<br>
            <input type="checkbox" name="konkurrencer" value="kon"/>
            Konkurrencer
        </p>


<p>
            <input type="submit" value="Vis sms-tekst"/>
        </p>



<div id="textToSend" style="display:none;">
Skriv følgende tekst nøjagtigt (husk mellemrum) i en sms og send den til 1231:<br>
<span id="sendText" style="background-color:yellow;">&nbsp;</span><br>
Tjenesten er gratis. Det koster kun alm. sms-takst.<br>
Der er uden betydning om du skriver med små eller store bogstaver.
</div>
</form>

<script type="text/javascript">
function generateText(f){
  var txt = "tilmeld nyhedsbrev ";
  for(i=0,im=f.dage.length;im>i;i++){
    if(f.dage[i].checked)
      txt += f.dage[i].value;
  }
  var elm1 = f.tider;
  for(i=0,im=elm1.length;im>i;i++){
    txt += elm1[i].checked ? " " + elm1[i].value : "";
  }
  var elm2 = f.nyheder;
    txt += elm2.checked ? " " + elm2.value : " nej";
  var elm2 = f.tilbud;
    txt += elm2.checked ? " " + elm2.value : " nej";
  var elm2 = f.konkurrencer;
    txt += elm2.checked ? " " + elm2.value : " nej";
  document.getElementById("textToSend").style.display="block";
  document.getElementById("sendText").firstChild.nodeValue = txt;
}
</script>

-- els velbekomme '-)
Avatar billede denflinkelaanehaj Nybegynder
07. april 2007 - 20:13 #9
Superlækkert!
Nu er det nøjagtigt som det skal være.

1000 tak for hjælpen!

/DFL
Avatar billede roenving Novice
07. april 2007 - 23:36 #10
-- og jeg takker 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