Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/01/2012, 16:21
julili
 
Fecha de Ingreso: diciembre-2011
Mensajes: 7
Antigüedad: 13 años
Puntos: 0
corregir formulario con arrays

Hola! Necesito ayuda! Tengo que corregir un examen tipo test, en el que se cuentan las preguntas que estan bien, las que estan mal y las que estan en blanco. La cosa es que debe ser codigo generico para que sirva con cualquier tipo test, solo cambiando el valor de algunas variables.

He hecho este codigo:

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <title>Corrección de un test</title>
  4. <script type="text/javascript">
  5.  
  6. function corregir(){
  7. var numeroPreguntas=3;
  8. var numeroRespuestas=4;
  9. var nombreid = new Array();
  10. var correctas=["p12","p24","p33","p41"];
  11. var cont=0, contAcierto=0, contFallo=0, contBlanco=0, contResultado=0, indice, seleccionada, fallos=0;
  12. var controlador=1;var indice2;
  13. for (pregun=1;pregun<=numeroPreguntas;pregun++)
  14.     {
  15.     for (respuesta=1;respuesta<=numeroRespuestas;respuesta++)
  16.         {
  17.         nombreid[cont]="p"+pregun+respuesta; // me creo las ids de los radios a comprobar
  18.         //var indice=nombreid[cont];
  19.         cont++;
  20.         }
  21.     }
  22.    
  23.  
  24.  
  25. for (i=0;i<nombreid.length;i++){
  26.     indice=nombreid[i];
  27.     seleccionada=document.getElementById(indice).checked;
  28.    
  29.     if(seleccionada){
  30.         for(j=0;j<correctas.length;j++){
  31.             if(seleccionada && indice==correctas[j]){
  32.                 contAcierto++;
  33.             }
  34.             else if(seleccionada && indice!=correctas[j]{
  35.                 contFallo++;
  36.             }
  37.         }
  38.     }
  39.     else{  
  40.             contBlanco++;
  41.         }
  42.  
  43.  
  44.     }
  45.  
  46. }
  47.  
  48. alert("aciertos"+contAcierto+"fallos"+contFallo+"blancos"+contBlanco);
  49. }
  50. </script>
  51. </head>

El problema es que como hago la comprobacion de las preguntas dentro del for, me cuenta veces de mas los fallos y los blancos.


Este es el codigo HTML:

Código HTML:
Ver original
  1. <FORM name="Preguntas">
  2.  
  3.   <p>
  4. <!-- Primera pregunta -->
  5.     1.- Este es el enunciado de la primera pregunta del test.  </p>
  6.  
  7.   <p>
  8.     <input type="radio" name="pregunta1" id="p11" value="A" /> Texto de la respuesta A.  </p>  <p>
  9.     <input type="radio" name="pregunta1" id="p12" value="B" /> Texto de la respuesta B.  </p>  <p>
  10.     <input type="radio" name="pregunta1" id="p13" value="C" /> Texto de la respuesta C.  </p>  <p>
  11.     <input type="radio" name="pregunta1" id="p14" value="D" /> Texto de la respuesta D.  </p>
  12.   <p></p>
  13.  
  14.    
  15. <!-- Segunda pregunta -->  
  16.     2.- Este es el enunciado de la segunda pregunta del test.  </p>
  17.  
  18.   <p>
  19.     <input type="radio" name="pregunta2"  id="p21" value="A" /> Texto de la respuesta A.  </p>  <p>
  20.     <input type="radio" name="pregunta2"  id="p22" value="B" /> Texto de la respuesta B.  </p>  <p>
  21.     <input type="radio" name="pregunta2"  id="p23" value="C" /> Texto de la respuesta C.  </p>  <p>
  22.     <input type="radio" name="pregunta2"  id="p24" value="D" /> Texto de la respuesta D.  </p>
  23.    <p></p>
  24.  
  25.    
  26. <!-- Tercera pregunta -->
  27. 3.- Este es el enunciado de la tercera pregunta del test.   </p>
  28.  
  29.   <p>
  30.     <input type="radio" name="pregunta3"  id="p31" value="A" /> Texto de la respuesta A.  </p>  <p>
  31.     <input type="radio" name="pregunta3"  id="p32" value="B" /> Texto de la respuesta B.  </p>  <p>
  32.     <input type="radio" name="pregunta3"  id="p33" value="C" /> Texto de la respuesta C.  </p>  <p>
  33.     <input type="radio" name="pregunta3"  id="p34" value="D" /> Texto de la respuesta D.  </p>
  34.    <p></p>
  35.  
  36.  
  37. </FORM>
  38.  
  39.  
  40. <FORM name="boton">
  41.     <input type="button"  name="boton" value=" CORREGIR " onClick="corregir()"/>
  42. </FORM>
  43.  
  44.  
  45. <br><br>
  46.  
  47. <b>RESULTADO DEL TEST</b> <P>
  48. <form name="resultado" action="">
  49.    
  50. Has acertado <input type="text" size="3" name="aciertos" id="aciertos" value=""/> preguntas <br>
  51. Has fallado en <input type="text" size="3" name="fallos" value=""/> preguntas <br>
  52. Has dejado de responder <input size="3" name="blancos" type="text"  value=""/> preguntas <P>
  53. PUNTUACIÓN: <input type="text" size="5" name="puntuacion" value=""/> puntos
  54.  
  55. </form>
  56.  
  57.  
  58. </body>
  59. </html>

¿Alguna idea sobre como hacer la correccion impidiendo este problema?

Muchas gracias