Avatar billede krosser Nybegynder
08. juli 2002 - 16:32 Der er 18 kommentarer og
1 løsning

javascipt og forms

Ok here's the deal:

har en formular ....et sæt radioknapper angiver ja/nej

I tilfælde af at ja vælges skal der på "tak fordi du deltager siden" vises tre fire linjer tekst ekstra end hvis der vælges nej.

Hvordan gør jeg dette? ET problem kan dog være at mit action script ligger på en server jeg ikke har adgang til og kan derfor ikke ændre i scriptet.

Kan selvfølgelig ændre html formular siden lige så tosset jeg vil.

Kan man via sessions eller cookies måske alligevel tjekke om ja vælges, og dermed udskrive teksten?

Hvis du har en løsning må du osse gerne tage højde for om javascript er slået til el fra i browsetren. Såfremt det er slået fra skal en helt tredje tekst vises.
Avatar billede =maddog= Nybegynder
08. juli 2002 - 16:43 #1
Det ville gøres ganske fint i et simpelt javascript.
Skal teksten vises i et <textarea> eller i et andet HTML objekt?
Avatar billede nikolajdu Nybegynder
08. juli 2002 - 16:47 #2
Du kan vel gøre sådan her :

<html>
<head>
    <title>Untitled</title>
    <script>
   
    function visDu(hvad,vis){
    if(vis == "ja"){
    document.getElementById(hvad).style.visibility='visible'
        }else{
        document.getElementById(hvad).style.visibility='hidden'
        }
    }
   
    </script>
</head>

<body>
<form name="f">
<input type="radio" name="r1" value="ja" onclick="visDu('tekst',this.value)">ja
<br>
<input type="radio" name="r1" value="nej" onclick="visDu('tekst',this.value)">nej
</form>

<div id="tekst" style="visibility:hidden">Tak tak du</div>

</body>
</html>
Avatar billede nikolajdu Nybegynder
08. juli 2002 - 16:49 #3
Og bare lige inden Den gale beklager sig ;-)

<html>
<head>
    <title>Untitled</title>
<script language="javascript">
   
    ns4 = (document.layers)? true:false
    ie4 = (document.all)? true:false
    ie5 =(document.getElementById)? true:false
    ns6 = (document.getElementById && !document.all)?true:false;
   
    function visDu(hvad,vis){
    if(vis == "ja"){
    teksten = (ns4)? document.layers[hvad] : (ie4)? document.all[hvad].style : document.getElementById(hvad).style;
    teksten.visibility = "visible";
    document.getElementById(hvad).style.visibility='visible'
        }else{
        teksten = (ns4)? document.layers[hvad] : (ie4)? document.all[hvad].style : document.getElementById(hvad).style;
        teksten.visibility = "hidden";

        }
    }
   
    </script>
</head>

<body>
<form name="f">
<input type="radio" name="r1" value="ja" onclick="visDu('tekst',this.value)">ja
<br>
<input type="radio" name="r1" value="nej" onclick="visDu('tekst',this.value)">nej
</form>

<div id="tekst" style="visibility:hidden">Tak tak du</div>

</body>
</html>
Avatar billede krosser Nybegynder
08. juli 2002 - 19:23 #4
den side formularen ligger på og selve takkesiden er seperate. Altså to filer er det et problem?
Avatar billede nikolajdu Nybegynder
08. juli 2002 - 19:29 #5
Du du gerne vil er at skifte action alt efter hvad der er valgt?

<html>
<head>
    <title>Untitled</title>
<script language="javascript">
   
    ns4 = (document.layers)? true:false
    ie4 = (document.all)? true:false
    ie5 =(document.getElementById)? true:false
    ns6 = (document.getElementById && !document.all)?true:false;
   
    function visDu(hvad,vis){
    if(vis == "ja"){
    teksten = (ns4)? document.layers[hvad] : (ie4)? document.all[hvad].style : document.getElementById(hvad).style;
    teksten.visibility = "visible";
    document.getElementById(hvad).style.visibility='visible'
document.f.action="TAKKE_SIDEN.html"
        }else{
        teksten = (ns4)? document.layers[hvad] : (ie4)? document.all[hvad].style : document.getElementById(hvad).style;
        teksten.visibility = "hidden";
document.f.action="NEJ_TAK_SIDEN.html"

        }
    }
   
    </script>
</head>

<body>
<form name="f" action="TAKKE_SIDEN.html" medthod="get">
<input type="radio" name="r1" value="ja" onclick="visDu('tekst',this.value)">ja
<br>
<input type="radio" name="r1" value="nej" onclick="visDu('tekst',this.value)">nej
</form>

<div id="tekst" style="visibility:hidden">Tak tak du</div>

</body>
</html>

sådan noget?
Avatar billede =maddog= Nybegynder
08. juli 2002 - 19:30 #6
skal der åbnes en nye side, eller er det en pop-up?
Avatar billede krosser Nybegynder
08. juli 2002 - 19:31 #7
der en ny side side...formularen ligger på index.html og action tag går via amerikansk server tilbage til side i samme mappe der hedder sent.html
Avatar billede =maddog= Nybegynder
08. juli 2002 - 19:35 #8
jamen du kan jo ganske udemærket overføre parametre med URL'en og oversætte dem med javascript.
den lader jeg nikolajdu om. jeg ved han har et nasty script brygget sammen til netop det formål.
Avatar billede nikolajdu Nybegynder
08. juli 2002 - 19:38 #9
Prøv den her og skift så :

document.f.action="TAKKE_SIDEN.html"
document.f.action="NEJ_TAK_SIDEN.html"

ud med de rigtige stier.


<html>
<head>
    <title>Untitled</title>
<script language="javascript">
   
    ns4 = (document.layers)? true:false
    ie4 = (document.all)? true:false
    ie5 =(document.getElementById)? true:false
    ns6 = (document.getElementById && !document.all)?true:false;
   
    function visDu(hvad,vis){
    if(vis == "ja"){
    teksten = (ns4)? document.layers[hvad] : (ie4)? document.all[hvad].style : document.getElementById(hvad).style;
    teksten.visibility = "visible";
    document.getElementById(hvad).style.visibility='visible'
document.f.action="TAKKE_SIDEN.html"
        }else{
        teksten = (ns4)? document.layers[hvad] : (ie4)? document.all[hvad].style : document.getElementById(hvad).style;
        teksten.visibility = "hidden";
document.f.action="NEJ_TAK_SIDEN.html"

        }
    }
   
    </script>
</head>

<body>
<form name="f" action="TAKKE_SIDEN.html" medthod="get" target="_blank">
<input type="radio" name="r1" value="ja" onclick="visDu('tekst',this.value)">ja
<br>
<input type="radio" name="r1" value="nej" onclick="visDu('tekst',this.value)">nej
<input type="submit"value="send du">

</form>

<div id="tekst" style="visibility:hidden">Tak tak du</div>

</body>
</html>
Avatar billede nikolajdu Nybegynder
08. juli 2002 - 19:38 #10
Prøv den her og skift så :

document.f.action="TAKKE_SIDEN.html"
document.f.action="NEJ_TAK_SIDEN.html"

ud med de rigtige stier.


<html>
<head>
    <title>Untitled</title>
<script language="javascript">
   
    ns4 = (document.layers)? true:false
    ie4 = (document.all)? true:false
    ie5 =(document.getElementById)? true:false
    ns6 = (document.getElementById && !document.all)?true:false;
   
    function visDu(hvad,vis){
    if(vis == "ja"){
    teksten = (ns4)? document.layers[hvad] : (ie4)? document.all[hvad].style : document.getElementById(hvad).style;
    teksten.visibility = "visible";
    document.getElementById(hvad).style.visibility='visible'
document.f.action="TAKKE_SIDEN.html"
        }else{
        teksten = (ns4)? document.layers[hvad] : (ie4)? document.all[hvad].style : document.getElementById(hvad).style;
        teksten.visibility = "hidden";
document.f.action="NEJ_TAK_SIDEN.html"

        }
    }
   
    </script>
</head>

<body>
<form name="f" action="TAKKE_SIDEN.html" medthod="get" target="_blank">
<input type="radio" name="r1" value="ja" onclick="visDu('tekst',this.value)">ja
<br>
<input type="radio" name="r1" value="nej" onclick="visDu('tekst',this.value)">nej
<br>
<input type="submit"value="send du">

</form>

<div id="tekst" style="visibility:hidden">Tak tak du</div>

</body>
</html>
Avatar billede nikolajdu Nybegynder
08. juli 2002 - 19:39 #11
Maddog - ligefrem nasty - uha uha

Det hjælper jo ikke noget at overføre parametre hvis ikke siden vi vil sende til kan tage i mod dem :)
Avatar billede nikolajdu Nybegynder
08. juli 2002 - 19:41 #12
Anyway for egentligt at komme videre tror jeg du må fortælle lidt om hvad det er for en Amerikansk server - Er det en simpel formmail eller hvad_
Avatar billede krosser Nybegynder
09. juli 2002 - 10:22 #13
Du har ret det er noget cgi script/pearl (jeg kan ikke røre det)...

jeg tænker på om man ikke kan gemme ja/nej svaret i en cookie eller  session eller noget ligende og i tilfælde af ja kan man åbne en textfil og udskrive den på takkesiden. I tilfælde af nej kan man så åbne en anden textfil og udskrive den? eller måske have en slags if then else sætning på takkesiden der checker en cookie eller session..Hvis det da altså findes i javascript?
Avatar billede nikolajdu Nybegynder
09. juli 2002 - 10:51 #14
Cookies har vi, men sessions er et serverside fænomen. Anyway så  må duuddybe den server lidt, for det er tords alt muligt at sende en form til et cgiscript andetsteds.

/NIkolaj
Avatar billede krosser Nybegynder
09. juli 2002 - 11:03 #15
ja men det SKAL køre via den server der er ikke noget at gøre.. Kan det ikke bare klares med en cookie?
Avatar billede krosser Nybegynder
12. juli 2002 - 09:55 #16
jeg kan få scriptet til at acceptere alle fields i en form de vil komme med over. <input> . name i disse skal dog starte med tal og underscore for at komme med eks....  <input type="hidden" name="1_navn" > kan man evt sende parameter med i denne og så gemme det i en cookie og derved vælge hvad man skal udskrive?
Avatar billede nikolajdu Nybegynder
18. juli 2002 - 19:17 #17
?
Avatar billede nikolajdu Nybegynder
05. august 2002 - 08:09 #18
hmm
Avatar billede nikolajdu Nybegynder
09. januar 2003 - 05:02 #19
ehe lukke???
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