Foros del Web » Programando para Internet » Javascript »

Encuesta/Test

Estas en el tema de Encuesta/Test en el foro de Javascript en Foros del Web. Buenos días, Llevo ya varios días intentando hacer un test para un proyecto. La idea es hacer un test con 10 preguntas, el cual al ...
  #1 (permalink)  
Antiguo 20/12/2010, 06:15
 
Fecha de Ingreso: noviembre-2009
Mensajes: 21
Antigüedad: 14 años, 4 meses
Puntos: 0
Encuesta/Test

Buenos días,

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&nbsp;' + score + '&nbsp;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&nbsp;' + score + '&nbsp;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&oacute;n:&nbsp;' + score + '</span>';	if (score> 9) {document.getElementById('notafinal').innerHTML = '<span class="notas">Calificaci&oacute;n:&nbsp;Matr&iacute;cula de Honor</span>';}
   else if (score > 8) {document.getElementById('notafinal').innerHTML = '<span class="notas">Calificaci&oacute;n:&nbsp;Sobresaliente</span>';}
   else if (score > 7) {document.getElementById('notafinal').innerHTML = '<span class="notas">Calificaci&oacute;n:&nbsp;Notable alto</span>';}
   else if (score > 6) {document.getElementById('notafinal').innerHTML = '<span class="notas">Calificaci&oacute;n:&nbsp;Notable bajo</span>';}
   else if (score > 5) {document.getElementById('notafinal').innerHTML = '<span class="notas">Calificaci&oacute;n:&nbsp;Bien</span>';}
   else if (score > 4) {document.getElementById('notafinal').innerHTML = '<span class="notas">Calificaci&oacute;n:&nbsp;Suficiente</span>';}
   else {document.getElementById('notafinal').innerHTML = '<span class="notas">Calificaci&oacute;n:&nbsp;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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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&oacute;n final" onclick="notaFinal()" />
<div id="puntuacionfinal">&nbsp;</div><div id="notafinal">&nbsp;</div>
<br />
<input type="button" value="Imprimir" onclick="window.print()" accesskey="p" title="Pulsa este bot&oacute;n para imprimir la p&aacute;gina. <p>" />
<br />
<input type="button" value="Int&eacute;ntalo de nuevo" onclick="location.reload()" />
<input type="reset" value="Borrar todo" onclick="location.reload()" />
</div>
</form>
</div>
</body>
</html> 
Alguien me puede ayudar.
Muchísimas gracias
  #2 (permalink)  
Antiguo 20/12/2010, 06:27
 
Fecha de Ingreso: diciembre-2010
Mensajes: 31
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Encuesta/Test

meija, no puedes hacer esto solo con javascript, necesitas algun lenguaje que guarde los resultados en algún lado ( como php, aps, java o lo que sea ) . Lo único que si podrías hacer con js, es detectar si ya ha participado mediante cookies ( solo si el usuario no borró estas ).

Recuerda que javascript es un lenguaje que se ejecuta del lado del cliente, y no puede mantener datos en el servidor.
  #3 (permalink)  
Antiguo 20/12/2010, 06:38
 
Fecha de Ingreso: noviembre-2009
Mensajes: 21
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Encuesta/Test

Si, lo se que su reseteas cookis se borra, pero como se podría hacer con las cookis??

Gracias por tu contestación.


Un saludo
  #4 (permalink)  
Antiguo 21/12/2010, 01:35
 
Fecha de Ingreso: noviembre-2009
Mensajes: 21
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Encuesta/Test

Nadie me podría explicar como poder guardar unas cookis de haber completado una vez el formulario1.html y que salte este a otro formulario2.html y este salte a un 3 html con los resultados del 2 formulario y gracias a las cookis si el usuario carga la encuesta vaya directamente al 3 html con el resultado??


Por favor!
  #5 (permalink)  
Antiguo 21/12/2010, 10:13
 
Fecha de Ingreso: noviembre-2009
Mensajes: 21
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Encuesta/Test

Bueno ya lo tengo solucionado, solo me falta poder mostrar los resultados.

Un saludo

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:46.