Avatar billede klid Nybegynder
20. juni 2002 - 16:57 Der er 9 kommentarer og
1 løsning

At gemme radioknapresultater i et array

Radioknapperresultater
Jeg har lavet en lille funktion, der skriver et par radioknapper i en tabelcelle.
Funktionen kaldes mange gange, derfor er det nødvendigt at ændre på radioknappernes navn mellem hvert kald. De er derfor navngivet Fun1, Fun2 Fun3 osv. Denne dåb er automatiseret.
Nu er problemet hvordan jeg "fanger" resultatet - hvilken knap der er trykket på. Jeg vil nemlig godt gemme resultatet i et array, man ved jo aldrig hvornår man får brug for den salgs.
Herunder ses min funktion, men den virker ikke. Ellerrettere sagt - næst sidste linje virker ikke. Måske har du et forslag???




Function FunRad (SPg)
Response.Write "<td width=" & wd3 & "><input type=radio onClick=nxt(" 
Response.write spg & ",true) value=1 name=Fun" & spg & ">Ja<br>"
Response.Write "<input type=radio onClick=nxt(" & spg
Response.write ",false) name=Fun" & spg & " value=2>Nej</td>"
FunRad = "Fun" & spg
end Function

Avatar billede eagleeye Praktikant
20. juni 2002 - 17:35 #1
du kalder en javascript function når man trykke på en radiobutton: nxt(x,y) hvor x er tallet på radiobutton og y er true eller false afhængig af om man trykker ja/nej.

Du kan prøve dette lille eks:
<html>
<head>
<script language="javascript">
<!--
function nxt(spg,value) {
  var trykkede_txt
  if (value == true) {
    trykkede_txt = "ja";
  } else {
    trykkede_txt = "nej";
  } 
  alert("Du trykkede " + trykkede_txt + " på spg " + spg);
return true;
}
//-->
</script>
</head>
<body>
<%
Function FunRad (SPg)
Response.Write "<td width=" & wd3 & "><input type=radio onClick=nxt(" 
Response.write spg & ",true) value=1 name=Fun" & spg & ">Ja<br>"
Response.Write "<input type=radio onClick=nxt(" & spg
Response.write ",false) name=Fun" & spg & " value=2>Nej</td>"
FunRad = "Fun" & spg
end Function

call FunRad(4)

%>
</body>
</html>
Avatar billede klid Nybegynder
20. juni 2002 - 17:59 #2
Tak for rådet. Jeg vil lige se på det - det kan godt tage tid, for jeg er ikke meget for kaffe. Men du har jo ret i at jeg har smagt på det, det er en funktion jeg bruger til at lukke og åbne for nogle andre celler. Min nxtfunktion ser således ud:


<script language="JAVAscript">
<!--
function nxt(id,show){
    var d = show ? "block" : "none"
    var el= document.all["RK"+id];
    if(el.length){
        for (var i=0,il=el.length; i<il; i++)
          el[i].style.display=d;
        } else {
        el.style.display=d;
  }
}
-->
</script>


Men nu skal jeg lige se ørneøje lige i øjene, om man kan parre vores scripts ;-)
Avatar billede eagleeye Praktikant
20. juni 2002 - 18:10 #3
Men jeg er ikke helt med på hvad du helt presist mangler?

Du skriver du vil havde "resultatet" i et array, men hvilket? den radio man trykker på...
Avatar billede klid Nybegynder
20. juni 2002 - 18:24 #4
Nemlig. Jeg vil have et array, hvor jeg kan gemme resultaterne fra radioknapperne.
Altså arr(1)=2 arr(23)=1 arr(25)=2 arr(107)=2 arr(x)=?
(eller true/false - det betyder ikke så meget.

Men jeg kan ike finde ud af at parre alt det java med asp.
Avatar billede eagleeye Praktikant
21. juni 2002 - 00:13 #5
har du overvejet at ligger det hele på en stor form?
Avatar billede klid Nybegynder
21. juni 2002 - 10:35 #6
Ja - det ligger faktisk på form. Men det omdefinere blot problemet - for hvordan får man formen presset ind i et array?
Avatar billede eagleeye Praktikant
21. juni 2002 - 10:42 #7
Hvordan sender du siden vidre til næste via FORM med submit knap eller link?

Hvis du bruger en submit knap, kanp du på den nye side hendte oplysniger vha request.form.

radio1 = request.form("fun1")
så bliver radio1 = values for fun1 altså 1 eller 2

hvis du så har en række radiokanppe i række følge kan du lave et loop

for i=1 to max_radiobotton
  array(i) = request.form("fun"&i)
next
Avatar billede klid Nybegynder
21. juni 2002 - 11:56 #8
Det lyder interessant! Men jeg skal lige forstå det helt rigtigt.
Altså på side 1 har jeg et spørgsskema med en form
På side 2 en kort meddelse om tak fordi du kikkede forbi, og mens man takker kan alle data takkes ind i mit array?
Men de skal ende i en database.

Jeg er ikke helt sikker på at jeg forstå forskellem mellem submit og link. Jeg mener  - med submitknappen definere jeg såvel en mailadresse hvortil formen skal sendes, men også en redirect komando - hvor brugeren ledes over på takkesiden.

Den der "request.form" komando - virker kun når man har submittet og forladt siden?
Avatar billede eagleeye Praktikant
26. juni 2002 - 08:49 #9
Ja du kan få alle ind i dit array. Hvordan skal de ende/formateres i databasen? Skal det være en lang streng med , mellem eller??

En form:  <form method="post" action="nyside.asp">
For at sende form'en vidre skal der være en submit function og der findes standart en submit knap som kan ligge på form'en.

Eks:
<form method="post" action="fil.asp">
<input type="text" name="navn1"><br>
<input type="submit" name="vidre" value="vidre">
</form>
Hvis du på siden fil.asp response.write request.form("navn1") udskriver du det som er skrevet i text-feltet.

Ja request.form virker kun når en form er blevet send med method=post, enten til sammeside eller en ny side.
Avatar billede klid Nybegynder
27. juni 2002 - 02:10 #10
Hm - måske er det lidt af en omvej at lægge formen ind i et array når de egentligt skulle i database(tabellen). I den skal hvert felt i formen have sin kolonne. Men det er jo et helt andet spørgsmål hvordan man skruer det sammen, så jeg lukker her.




Men jeg takker ofr dit svar og din interesse.-
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
Kurser inden for grundlæggende programmering

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