Llevo ya varios días intentando hacer un test para un proyecto.
La idea es hacer un test con 10 preguntas, el cual al terminar solo muestre cuantos aciertos se a tenido. Ademas de un botón para volverlo hacer, esta segunda vez se hace el test y muestra que contestaciones a tenido y se detalla como tendría que estar bien. Una vez hecho que el usuario no pueda hacer el test otra vez.
Si carga el documento vuelva a cargar el detalle con los resultados, no puedo usar php ya que la asignatura es de javascript, pero puedo meter jquery tambien.
Esto es lo que he hecho hasta ahora:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Esto es una prueba</title> <script type="text/javascript"> var ans = new Array; var done = new Array; var score = 0; ans[1] = 'a'; ans[2] = 'a'; ans[3] = 'c'; ans[4] = 'a'; ans[5] = 'a'; ans[6] = 'a'; ans[7] = 'a'; ans[8] = 'a'; ans[9] = 'b'; ans[10] = 'a'; function Engine(question, answer) { if (answer != ans[question]) {if (!done[question]) { done[question] = -1; var mal='<span class="mal' + '">Incorrecto ' + score + ' puntos acumulados</span>' document.getElementById('resp' + (question)).innerHTML = mal; } else { alert("Ya has contestado a esta pregunta!"); } } else { if (!done[question]) { done[question] = -1; score++; var bien='<span class="bien' + '">Correcto ' + score + ' puntos acumulados</span>' document.getElementById('resp' + (question)).innerHTML = bien; } else { alert("Ya has contestado a esta pregunta!"); } } } function notaFinal() { document.getElementById('puntuacionfinal').innerHTML = '<span class="notas">Puntuación: ' + score + '</span>'; if (score> 9) {document.getElementById('notafinal').innerHTML = '<span class="notas">Calificación: Matrícula de Honor</span>';} else if (score > 8) {document.getElementById('notafinal').innerHTML = '<span class="notas">Calificación: Sobresaliente</span>';} else if (score > 7) {document.getElementById('notafinal').innerHTML = '<span class="notas">Calificación: Notable alto</span>';} else if (score > 6) {document.getElementById('notafinal').innerHTML = '<span class="notas">Calificación: Notable bajo</span>';} else if (score > 5) {document.getElementById('notafinal').innerHTML = '<span class="notas">Calificación: Bien</span>';} else if (score > 4) {document.getElementById('notafinal').innerHTML = '<span class="notas">Calificación: Suficiente</span>';} else {document.getElementById('notafinal').innerHTML = '<span class="notas">Calificación: Insuficiente</span>';} } // End --> </script> <body> <div id="contenedor"> <form name="test" action=""> <h1>Esto es una prueba</h1> <p>Contesta a las siguientes preguntas marcando la respuesta correcta:</p> <div class="numero">1</div> <div class="pregunta"> <p>Te gusta sacar fotos?</p> <div id="resp1"> </div> <ol> <li><input type=radio value="a" onclick="Engine(1, this.value)" />Si</li> <li><input type=radio value="b" onclick="Engine(1, this.value)" />No</li> <li><input type=radio value="c" onclick="Engine(1, this.value)" />Alguna vez</li> <li><input type=radio value="d" onclick="Engine(1, this.value)" /></li> </ol> </div> <div class="numero">2</div> <div class="pregunta"> <p>Te gusta tu ciudad?</p> <div id="resp2"> </div> <ol> <li><input type=radio value="a" onclick="Engine(2, this.value)" />Si</li> <li><input type=radio value="b" onclick="Engine(2, this.value)" />No</li> <li><input type=radio value="c" onclick="Engine(2, this.value)" /></li> <li><input type=radio value="d" onclick="Engine(2, this.value)" /></li> </ol> </div> <div class="numero">3</div> <div class="pregunta"> <p>Esta en la costa?</p> <div id="resp3"> </div> <ol> <li><input type=radio value="a" onclick="Engine(3, this.value)" />Si</li> <li><input type=radio value="b" onclick="Engine(3, this.value)" />No </li> <li><input type=radio value="c" onclick="Engine(3, this.value)" />Depende</li> <li><input type=radio value="d" onclick="Engine(3, this.value)" /></li> </ol> </div> <div class="numero">4</div> <div class="pregunta"> <p>Numero de coches?</p> <div id="resp4"> </div> <ol> <li><input type=radio value="a" onclick="Engine(4, this.value)" />1</li> <li><input type=radio value="b" onclick="Engine(4, this.value)" />3</li> <li><input type=radio value="c" onclick="Engine(4, this.value)" />10</li> <li><input type=radio value="d" onclick="Engine(4, this.value)" />15</li> </ol> </div> <div class="numero">5</div> <div class="pregunta"> <p>Tienes internet en casa?</p> <div id="resp5"> </div> <ol> <li><input type=radio value="a" onclick="Engine(5, this.value)" />Si</li> <li><input type=radio value="b" onclick="Engine(5, this.value)" />No </li> <li><input type=radio value="c" onclick="Engine(5, this.value)" />Tuve</li> <li><input type=radio value="d" onclick="Engine(5, this.value)" /></li> </ol> </div> <div class="numero">6</div> <div class="pregunta"> <div id="vulcano"></div> <p>Tienes una moto?</p> <div id="resp6"> </div> <ol> <li><input type=radio value="a" onclick="Engine(6, this.value)" />Si</li> <li><input type=radio value="b" onclick="Engine(6, this.value)" />No</li> <li><input type=radio value="c" onclick="Engine(6, this.value)" />Tuve</li> <li><input type=radio value="d" onclick="Engine(6, this.value)" /></li> </ol> </div> <div class="numero">7</div> <div class="pregunta"> <p>Te gusta internet?</p> <div id="resp7"> </div> <ol> <li><input type=radio value="a" onclick="Engine(7, this.value)" />No</li> <li><input type=radio value="b" onclick="Engine(7, this.value)" />Si</li> <li><input type=radio value="c" onclick="Engine(7, this.value)" />A veces</li> <li><input type=radio value="d" onclick="Engine(7, this.value)" /></li> </ol> </div> <div class="numero">8</div> <div class="pregunta"> <p>Vistes camisetas?</p> <div id="resp8"> </div> <ol> <li><input type=radio value="a" onclick="Engine(8, this.value)" />Si</li> <li><input type=radio value="b" onclick="Engine(8, this.value)" />No</li> <li><input type=radio value="c" onclick="Engine(8, this.value)" />A veces</li> <li><input type=radio value="d" onclick="Engine(8, this.value)" /></li> </ol> </div> <div class="numero">9</div> <div class="pregunta"> <p>Te gusta este test?</p> <div id="resp9"> </div> <ol> <li><input type=radio value="a" onclick="Engine(9, this.value)" />Si</li> <li><input type=radio value="b" onclick="Engine(9, this.value)" />No</li> <li><input type=radio value="c" onclick="Engine(9, this.value)" />A veces</li> <li><input type=radio value="d" onclick="Engine(9, this.value)" /></li> </ol> </div> <div class="numero">10</div> <div class="pregunta"> <p>Esta genial el test?</p> <div id="resp10"> </div> <ol> <li><input type=radio value="a" onclick="Engine(10, this.value)" />Si</li> <li><input type=radio value="b" onclick="Engine(10, this.value)" />No </li> <li><input type=radio value="c" onclick="Engine(10, this.value)" />A veces</li> <li><input type=radio value="d" onclick="Engine(10, this.value)" /></li> </ol> </div> <div id="borrarimprimir"> <input type="button" value="Calificación final" onclick="notaFinal()" /> <div id="puntuacionfinal"> </div><div id="notafinal"> </div> <br /> <input type="button" value="Imprimir" onclick="window.print()" accesskey="p" title="Pulsa este botón para imprimir la página. <p>" /> <br /> <input type="button" value="Inténtalo de nuevo" onclick="location.reload()" /> <input type="reset" value="Borrar todo" onclick="location.reload()" /> </div> </form> </div> </body> </html>
Muchísimas gracias