Philipp B.: Nochmals: Memory-Funktion!?

Hallo,

ich bin gerade dabei, für den Informatikunterricht eine Website zu erstellen. Auf diese Seite soll ein Multiple-Choice Quiz eingebunden sein. Ich habe dies mit einem Pop-Up Fenster gemacht, einer Windows-Massage, die, wenn man auf die Lösung klickt, anzeigt ob sie richtig oder falsch ist.

MEINE FRAGE:
Wie kann ich eine Memory-Funktion einrichten, dass man hinterher gesagt bekommt "Sie hatten XX falsche und XX richtige Antworten", und dass man nur auf eine der Seiten klicken kann.

Hier der Quelltext, den ich verwendet habe:

_____________________________________________________________________

Wie heißt das Land südlich von Mordor?
<p onClick="alert('Richtig!');">a) Harad</p>
<p onClick="alert('Falsch!');">b) Minas Tirith</p>
<p onClick="alert('Falsch!');">c) Khand</p>

<br>
<hr>

Wo kämpfen Frodo etc. zum ersten Mal gegen die Ringgeister?
<p onClick="alert('Falsch!');">a) Bruchtal</p>
<p onClick="alert('Richtig!');">b) Wetterspitze</p>
<p onClick="alert('Falsch!');">c) Bree</p>

<br>
<hr>

Wer ist der Regisseur vom Film?
<p onClick="alert('Falsch!');">a) Steven Spielberg</p>
<p onClick="alert('Richtig!');">b) Peter Jackson</p>
<p onClick="alert('Falsch!');">c) Michael Bully Herbig</p>
_____________________________________________________________________

dieser vorschlag wurde von "fastix (r)" eingereicht:
_____________________________________________________________________

<script type="text/javascript">
/*
  Setzen der Variablen, damit diese auch außerhalb der Funktionen gültig bleiben:
*/
var intRichtigeAntworten = 0;
var intFalscheAntworten  = 0;

function auswerten(intAktion,strElement) {
   /*
    intAktion:   1 für Richtig, 0 für Falsch
    strElement:  ID des umschliesenden Div
   */

if (intAktion==0) {
      intFalscheAntworten++;
      alert ("Falsch");
   } else {
      intRichtigeAntworten++
      alert ("Richtig");
   } // end if

/*
     dies verbirgt den Abschnitt und macht somit ein mehrmaliges Antworten "nicht" möglich:
   */

document.getElementById(strElement).style.display="none";
} // end function

function ausgabe() {
   intAlleAntworten = var intRichtigeAntworten + intFalscheAntworten;
   alert("Sie hatten " + intRichtigeAntworten + " Antworten von insgesamt "+ intAlleAntworten + ".")
} // end function
</script>

<!-- Ändere Deine Frageblöcke so: -->
<div id="mordor">
Wie heißt das Land südlich von Mordor?
<div onclick="auswerten(1, "mordor");">a) Harad</div>
<div onclick="auswerten(0, "mordor");">b) Minas Tirith</div>
<div onclick="auswerten(0, "mordor");">c) Khand</div>
</div>

<div onclick="auswert();">Ausgabe</div>

Natürlich kannst Du das nach Belieben noch verfeinern... oder korrigieren.

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

_____________________________________________________________________

Vielen Dank für die Antwort!

Ich bin aber leider kein Profi und habe jetzt seit 1 Stunde dran rumgebastelt... Ich kriege das einfach nicht hin.
Kannst du oder irgendein anderer diese Seite - mit nur 1 Frage oder so, das ist egal - mal "druckreif" eingeben, also mit html, body, head, also so dass ich sie mir mal in der "vorschau" anschauen kann?

Ich glaube dann verstehe ich mehr - das wäre eine riesengroße Hilfe!

Vielen Dank,

Philipp

  1. Hallo,

    merken kann man sich das ganze mittels JavaScript. Die Daten kannst Du dann z.B. über die URL jeweils an das folgende Dokument weiterreichen. (frage2.html#richtig2falsch1...)
    Wenn Dir die Lösung mit der URL nicht gefällt, kannst Du die jeweiligen Einzelseiten mit den Fragen auch in einem Frame anzeigen lassen und in der "Elternseite" das ganze wiederum mittels JavaScript handeln. (Die Daten bleiben dann ja bestehen, da nicht die komplette Seite neu geladen wird)

    Gruß

    WebFix