Moin!
Helfen ja. Machen werd ich's aber nicht für Dich.
[0] Die Auswertung steht im gleichen Frame...
[1] Benenne Deine Radiobuttons anders. Und gehe nicht über die ID des Elements. Das macht nur Streß.
Tip:
Frage 1 Buttonpaar 1: => name="B1_1"
Frage 1 Buttonpaar 2: => name="B1_4"
...
Frage 10 Buttonpaar 4: => name="B10_4"
[2] Dann kanst Du übersichtlicher abfragen, was eingegeben wurde
statt: afrage1=window.document.forms[0].elements[1].checked;
Lese die Werte in ein Array:
B[1][1]=window.document.forms[0].elements["B1_1"].checked;
B[1][2]=window.document.forms[0].elements["B1_2"].checked;
...
B[10][4]=window.document.forms[0].elements["B10_4"].checked;
Ist das nicht schön übersichtlich?
Lege ein Array an, welches die Lösung enthält:
Zuerst setzt Du alle auf falsch:
for (var i=1; i <= 10; i++) {
for (var k=1; k <= 10; k++) {
L[i][k]=false;
}
}
L[1][3]=true; /* Setze nur die richtigen auf true */
L[2][2]=true;
L[2][3]=true;
...
Dann der Vergleich:
Punkte=0;
for (var i=1; i <= 10; i++) {
for (var k=1; k <= 10; k++) {
E[i][k]=(B[i][k]==L[i][k]);
if (E[i][k]) {
Punkte=Punkte+1;
}
}
}
[3] Zur Benotung:
Vergib erstmal eine 6:
Note=6;
Und dann aufwärts. (Es geht auch andersrum...)
if (Punkte > 11) { Note=5;}
...
if (Punkte > 35) { Note=1;}
So. Jetzt musst Du nur noch den Text zusammenstückeln:
Ausgabe="";
for (var i=1; i <= 10; i++) {
Ausgabe=Ausgabe+"
"+i+". Frage:"
... arbeite hier mit den Variablen L[i][1-4];B[i][1-4] und bau den Text zusammen.
}
ach ja:
window.document.forms[0].elements["ausgabe"].value="Ausgabe";
Benenne also auch die Textarea entsprechend...
Viel Spaß!
fastix®
Meinereinerselbst ist auf der Suche nach Aufträgen