Multiple Choice Quiz
Maik
- dhtml
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
Hi!
Ich fühle mich von dir ein wenig ver*****.
Du rotzt hier deinen Code rein, den man dann sogar noch verändern muss (den letzten (von dreien!) Javascript-Teil in <script> fassen).
Das habe ich sogar getan.
Dann muss man noch zwei gifs erstelln, um überhaupt zu erkennen, was da passieren soll. Sogar das habe ich erledigt.
Und dann funktioniert auch noch anscheinend alles - zumindes das, was ich feststellen kann.
Was soll überhaupt passieren? Und wenn dir noch jemand ausser mir helfen soll, dann bring auch ein online-Beispiel, dieselbe Mühe wie ich machen sich wenige.
Gruß aus Iserlohn
Martin