09. marts 2000 - 15:23Der er
14 kommentarer og 1 løsning
Sammenlægning af spørgsmål ?!?!
Hej...
Jeg skal bruge et script hvor man kan få flere samlet total. Jeg har 41 spørgsmål, som skal svares med en værdi mellem 1-6. Disse spm. skal så ligges sammen på forskellig vis. Altså i 7 forskellige grupper, de skal så divideres med det antal spm., der er med i den pågældende gruppe. Så jeg får 7 resultater.... Kan det lade sig gøre ???
<ole> Det kan sikkert også sagtens gøres i JavaScript. Hvordan ligger dine spørgsmål?...på én side, eller...? Hvordan vælges en spørgsmåls-værdi?...ved select-inputs, eller...? /VH </bole>
Værdi vil jeg have som en afkrydsningsboks fra 1 til 6, men hvis det ikke kan lade sig gøre, er det også fint hvis man bare kan skrive en værdi i feltet....
<ole> Prøv det, Kim har foreslået - det ser umiddelbart meget gangbart ud. Ellers vil jeg prøve at lave det til dig i aften eller i morgen. Det kan under alle omstændigheder sagtens lade sig gøre i JavaScript...piece of cake ;-) /VH </bole>
<ole> Jeg har lige lavet et eksempel, så det kopierer jeg lige ind, så andre evt. kan få glæde af det:
<html> <head> <script language="JavaScript"><!-- var sum = new Array(); var num = new Array(); var resultat = new Array(); for (j=0; j<7; j++) { sum[j] = 0; num[j] = 0; resultat[j] = 0; }
function beregn() { for (i=0; i<document.forms[0].length; i++) { with (document.forms[0]) {alert(elements[i].name.charAt(0)); sum[elements[i].name.charAt(0)] += eval(elements[i].options[elements[i].options.selectedIndex].value); if (elements[i].options[elements[i].options.selectedIndex].value != 0) { num[elements[i].name.charAt(0)]++; } } } for (k=0; k<sum.length; k++) { if (sum[k] != 0 && num[k] != 0) { resultat[k] = sum[k] / num[k]; } } } // --> </script>
</head> <body> <form> Hvor mange computerbrugere har tillid til Bill Gates?<br> <select name=1_1> <option value=0>Vælg <option value=1>1 <option value=2>2 <option value=3>3 <option value=4>4 <option value=5>5 <option value=6>6 </select><br><br> Hvor mange internetbrugere tror på, de ikke bliver overvåget?<br> <select name=1_2> <option value=0>Vælg <option value=1>1 <option value=2>2 <option value=3>3 <option value=4>4 <option value=5>5 <option value=6>6 </select><br><br> Hvor mange gode hjemmesider har du set det sidste år?<br> <select name=2_1> <option value=0>Vælg <option value=1>1 <option value=2>2 <option value=3>3 <option value=4>4 <option value=5>5 <option value=6>6 </select><br><br> Hvor højt positivitetsniveau synes du, spørgeskemaforfatteren har<br> på en skala fra 1-100?<br> <select name=2_2> <option value=0>Vælg <option value=1>1 <option value=2>2 <option value=3>3 <option value=4>4 <option value=5>5 <option value=6>6 </select><br><br> </form> <a href=java script:beregn()>BEREGN</a> </body> </html>
De 7 resultater ligger i array'et 'resultat', og kan tilgås ved: 1.resultat = resultat[0]; 2.resultat = resultat[1]; OSV...
Bemærk navngivningen af select-elementerne: <select name=1_3> 1-tallet angiver gruppe-nummer. 3-tallet angiver spørgsmåls-nummer i denne gruppe. Her er altså tale om spørgsmål 3 i gruppe 1.
Ønsker du at indsætte andre elementer i formen (f.eks. knapper, text-inputs, osv), skal der ændres lidt. Tilføjes et element i begyndelsen, ændrer du: for (i=0; i<document.forms[0].length; i++) { til: for (i=1; i<document.forms[0].length; i++) {
Tilføjes et i slutningen, ændrer du samme linie til: for (i=0; i<document.forms[0].length-1; i++) {
Du kan bruge flere eller færre grupper af spørgsmål. Antallet af spørgsmål i den enkelte gruppe er ubegrænset. Ændrer du antallet af grupper, skal du ændre 7-tallet i denne linie: for (j=0; j<7; j++) {
UPS...denne alert kan du godt slette, den var kun til test-brug: alert(elements[i].name.charAt(0)); Den står i beregningsfunktionens anden linie.
Synes godt om
Ny brugerNybegynder
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.