Maik: Multiple Choice Quiz

Beitrag lesen

Hallo,

ich habe ein kleines Problem. Vielleicht kann mir jemand weiter helfen.

Kurz um:

HTML:
<script language="JavaScript">
<!--
// Multiple Choice Answer
var textanswers = new Array(4)
textanswers[0] = "Tester > Konzepter > Kunde";
textanswers[1] = "Kunde > Konzepter > Tester";
textanswers[2] = "Konzepter > Tester > Kunde";
textanswers[3] = "Kunde > Tester > Konzepter";
//-->
</script>
</head>
<body>
<div id="quizcontainer">
<script language="JavaScript">
<!--
for(i=0; i<=textanswers.length -1; i++) {
document.write("<div id='mtpl_0" + i + "'><div id='divImg" + i + "'><a href='#' onclick=change("+i+");setflag("+i+")><img src='kasten.gif' border='0' id="+i+"></a></div><div id='text" + i + "'>" + textanswers[i] + "</div></div>");
    }
//-->
</script>
</div>
<div id="questioncontainer">
<div id="imgcontainer"></div>
<div id="question"></div>
<div id="commit"><a href="#" onclick="check()">ok</a></div>
</div>

</body>
</html>
-------------------------------------------------------------------

Javascript:
// Images to highligh the choose
var changeimg = new Array(2);
changeimg[0] = new Image;
changeimg[0].src = "kasten.gif";
changeimg[1] = new Image;
changeimg[1].src = "kasten_high.gif";

// Change the Image OnClick
function change(pos){
 if(document.images[pos].src.indexOf("kasten.gif")!=-1) {
     document.images[pos].src="kasten_high.gif"
   }
   else {
     document.images[pos].src="kasten.gif"
   }
}

// Safe the answer of the user
currentImage = new Array(4);
currentImage[0] = false;
currentImage[1] = false;
currentImage[2] = false;
currentImage[3] = false;

// Sets flag to the choosen answer
function setflag(pos) {
 for(i=0; i<=3; i++) {
  if (document.images[pos].src.indexOf("kasten_high.gif")!=-1) {
   currentImage[pos] = true;
  }
  else {
   currentImage[pos] = false;
  }
 }
}

// For each solution it must be a variable and be added in function check()
  var solution0 = 2;
  var solution1 = 3;

function check() {
   document.getElementById("mtpl_0"+solution0).style.backgroundColor = "yellow";
   document.getElementById("mtpl_0"+solution1).style.backgroundColor = "yellow";
   for(i=0; i<=3; i++) {
    if (currentImage[solution0] == true && currentImage[solution1] == true) {
     document.getElementById("mtpl_0"+solution0).style.backgroundColor = "green";
     document.getElementById("mtpl_0"+solution1).style.backgroundColor = "green";
     //Session für Quiz 1 um eins erhöhen
    }
    if((currentImage[i] == true && currentImage[i] != currentImage[solution0]) && (currentImage[i] == true && currentImage[i] != currentImage[solution1])) {
     document.getElementById("mtpl_0"+i).style.backgroundColor = "red";
     alert(currentImage[solution0]);
     //Bei Mischung erkennt er nicht, dass er rein muss ins Rot
    }
   }
  }
-------------------------------------------------------------------
PROBLEM:
Die letzte If Abfrage stimmt noch nicht so ganz.
Quellcode einfach mal abspeichern und das Quiz testen. Dann werdet ihr feststellen, dass ein Fall nicht funktioniert.

Vielen Dank im vorraus