Utah: Richtig oder falsch - mehr will ich ja gar nicht

Hy guys!!!

Ich habe einen Fragebogen vorbereitet, wo zu jeder Frage drei Antwortmöglichkeiten(Radiobuttons zum anklicken) gegeben sind. Der richtigen Antwort habe ich den value"r" gegeben und den falschen natürlich"f". Nun will ich eine Funktion schreiben, die erkennt, ob eine richtige Antwort gegeben wurde und diese auch zusammenzählt, so dass am Schluß das alert "sie haben...von...Fragen richtig!" ausgegeben werden kann. Ist wahrscheinlich nicht so schwer, doch ich denk wahrscheinlich viel zu kompliziert um auf die richtige Antwort zu kommen. Danke für die Hilfe!!!

  1. Hallo,

    Nun will ich eine Funktion schreiben, die erkennt, ob eine richtige Antwort gegeben wurde und diese auch zusammenzählt, so dass am Schluß das alert "sie haben...von...Fragen richtig!" ausgegeben werden kann.

    Vielleicht hilft vom Ansatz her dieses Beispiel, welches aber lediglich den Einsatz der Methode getElementsByName() "illustrieren" soll(te): http://www.styleassistant.de/tips/beispiel45b.htm.

    Bei einem JS-Quiz stehen aber die Loesungen bereits im Code (im genannten Beispiel in einem Array) ...

    MfG, Thomas

  2. Hallo,

    Richtig.

    Du benötigst, zusätzlich zu den Grundlagen der Sprache Javascript Wissen über den Umgang mit Formularen:
    http://de.selfhtml.org/javascript/objekte/forms.htm
    http://de.selfhtml.org/javascript/objekte/elements.htm#checked

    Alternativ könnte die Auswertung auch serverseitig laufen.

    Gruß, Jürgen

  3. Hallo.

    Ich habe einen Fragebogen vorbereitet, wo zu jeder Frage drei Antwortmöglichkeiten(Radiobuttons zum anklicken) gegeben sind. Der richtigen Antwort habe ich den value"r" gegeben und den falschen natürlich"f". Nun will ich eine Funktion schreiben, die erkennt, ob eine richtige Antwort gegeben wurde und diese auch zusammenzählt, so dass am Schluß das alert "sie haben...von...Fragen richtig!" ausgegeben werden kann. Ist wahrscheinlich nicht so schwer, doch ich denk wahrscheinlich viel zu kompliziert um auf die richtige Antwort zu kommen. Danke für die Hilfe!!!

    So (oder so ähnlich) sollte dein Script aussehen:

    <script type="text/javascript">
    <!--
    var anzahl = "0";
    function fragen() {
    if (document.formname.frageeins[1].checked == true) {
    anzahl++;
    }
    if (document.formname.fragezwei[0].checked == true) {
    anzahl++;
    }if (document.formname.fragedrei[2].checked == true) {
    anzahl++;
    }
    alert("Sie haben von 3 Fragen " + anzahl + " richtig beatwortet.");
    anzahl = "0";
    //-->
    </script>

    In diesem Script wird davon ausgegangen:
    1. Frage: 2. Antwort richtig
    2. Frage: 1. Antwort richtig
    3. Frage: 3. Antwort richtig

    Noch ein Link zu SELFHTML:
    http://de.selfhtml.org/javascript/objekte/elements.htm#checked

    Also das value wird in dem Script oben übrigens gar nicht gebraucht.

    Ich hoffe ich konnte helfen, H2O

    --
    #*~!:     Endlich Ferien.
    Selfcode: ie:% fl:| br:^ va:| ls:# fo:) rl:? n4:| ss:{ de:] js:) ch:? sh:( mo:? zu:|
    Infos:    http://emmanuel.dammerer.at/selfcode.html
  4. Ich habe das auch schon gemacht und habe dafür die eine/zwei globale Variablen benutzt:

    Im JS-Bereich definierst du zB

    var numberOfRightAnswers = 0;
    var numberOfWrongAnswers = 0;

    Jedes mal wenn ein Radiobutton geklickt wird hast du noch folgendes dabei:

    <input type="radio" name="name1" value="f" onClick="numberOfWrongAnswers++">

    bzw.

    <input type="radio" name="name1" value="r" onClick="numberOfRightAnswers++">

    Dabei hast du aber Probleme, wenn der User ständig die radiobuttons klickt, weil dann die ganze Zeit hochgezählt wird.

    Daher kannst du auch nur eine globale Variable und diese durch onClick auf "r" oder "f" setzen.

    Pete

  5. Hy guys!!!

    Ich habe einen Fragebogen vorbereitet, wo zu jeder Frage drei Antwortmöglichkeiten(Radiobuttons zum anklicken) gegeben sind. Der richtigen Antwort habe ich den value"r" gegeben und den falschen natürlich"f". Nun will ich eine Funktion schreiben, die erkennt, ob eine richtige Antwort gegeben wurde und diese auch zusammenzählt, so dass am Schluß das alert "sie haben...von...Fragen richtig!" ausgegeben werden kann. Ist wahrscheinlich nicht so schwer, doch ich denk wahrscheinlich viel zu kompliziert um auf die richtige Antwort zu kommen. Danke für die Hilfe!!!

    Hallo Utah,

    Du könntest durch das Formular laufen und bei jedem ausgewählten Radio-Button die value-Eigenschaft auf 'r' prüfen und bei jeder Namensänderung der Radio-Buttons den Gesamtzähler hochzählen.
    So sollte die Funktion innerhalb eines Formulars alle richtig ausgewählten Radio-Buttons finden und die Gesamzahl der Fragen ausspucken. =>

    function FormTest()
    {
     var treffer=0;
     var gesamt=1;
     var rname="";
     for(x=0;x<window.document.forms[0].elements.length;x++)
     {
      if(document.forms[0].elements[x].type=="radio")
      {
       if(rname=="")rname=document.forms[0].elements[x].name;
       if(rname!=document.forms[0].elements[x].name)
       {
        gesamt++;
        rname=document.forms[0].elements[x].name;
       }
       if(document.forms[0].elements[x].checked==true&&document.forms[0].elements[x].value=="r")
         treffer++;
      }
     }
     alert("Sie haben von "+gesamt+" Fragen "+treffer+" richtig beantwortet");
    }

    Gruss

    OLE