Foros del Web » Programando para Internet » Javascript »

Problema con select e input

Estas en el tema de Problema con select e input en el foro de Javascript en Foros del Web. Buenos días. Estoy haciendo un formulario para realizar un test, como no puedo tener acceso a bases de datos. He tenido que hacer la típica ...
  #1 (permalink)  
Antiguo 10/02/2009, 05:27
 
Fecha de Ingreso: octubre-2007
Mensajes: 7
Antigüedad: 17 años, 3 meses
Puntos: 0
Problema con select e input

Buenos días.

Estoy haciendo un formulario para realizar un test, como no puedo tener acceso a bases de datos. He tenido que hacer la típica incrustación de la solución en el propio htm.

Los select son 56 y tienen este aspecto, van de pregunta_1 a pregunta_56:

<select size="1" name=" pregunta_1">
<option selected value="0">_____________</option>
<option value="1">a</option>
<option value="2">b</option>
<option value="3">c</option>
</select>

Y luego los input, que son 56 también tienen este aspecto, van de correct_1 a correct_56

<input name=correct_1 size=4 type=hidden value="1">

Mi problema es que no consigo meter las opciones que elige el que realiza el test en un array ni tampoco meter las respuestas correctas en un array para compararlas después, adjunto el código:

<script language="JavaScript">

function resolver() {
var i;
var total=56;
var correctas=0;
var escogidas=new Array(total);
var deberian_ser=new Array(total);
var temp;

//Estas son las respuestas que elige el alumno
for (i=1; i<=total; i++) {
temp=document.form1.pregunta_+i.selectedIndex;
escogidas[i]=temp.value;
}

//Estas son las respuestas correctas
for (i=0; i<total;i++) {
deberian_ser[i]=document.form1.correct_+i.value;
}

//Controlar que al menos conteste una pregunta
if (escogidas.length == 0){
alert("Debes contestar una pregunta por lo menos");
document.form1.pregunta_1.focus();

}

else { //comparo ambos arrays para contar las respuestas correctas
for (i=0; i<total; i++){
if (escogidas[i]==deberian_ser[i]) {
correctas++;
}
}
}

//Aquí habría que mostrar los resultados del test
document.form1.txt_correctas.value=correctas;
}
</script>

Este script no hace absolutamente nada, ¿en qué estoy metiendo la pata?

Muchas gracias por adelantado.
  #2 (permalink)  
Antiguo 10/02/2009, 08:35
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Problema con select e input

Hola thepunishercadiz

Te recomiendo que en vez de utilizar esto:document.form1.correct_+i.value, crees un attributo id en cada input <input type='text' id='correct_1'>2,3..........56
y luego con javascript hagas esto: document.getElementById('correct_'+i).value;
Prueba y comentas como te fue.

Espero te sirva

Saludos
  #3 (permalink)  
Antiguo 10/02/2009, 13:05
 
Fecha de Ingreso: octubre-2007
Mensajes: 7
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Problema con select e input

Cita:
Iniciado por Fenris Ver Mensaje
Hola thepunishercadiz

Te recomiendo que en vez de utilizar esto:document.form1.correct_+i.value, crees un attributo id en cada input <input type='text' id='correct_1'>2,3..........56
y luego con javascript hagas esto: document.getElementById('correct_'+i).value;
Prueba y comentas como te fue.

Espero te sirva

Saludos
Gracias, lo intentaré mañana. Entonces, con los select hago lo mismo que con los inputs??
  #4 (permalink)  
Antiguo 11/02/2009, 05:00
 
Fecha de Ingreso: octubre-2007
Mensajes: 7
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Problema con select e input

Cita:
Iniciado por thepunishercadiz Ver Mensaje
Gracias, lo intentaré mañana. Entonces, con los select hago lo mismo que con los inputs??
Sigue sin funcionar, no me muestra el alert ni nada. Los select y los input están así:

<select size="1" name="pregunta_1" id="pregunta_1" style="font-family: Verdana; font-size: 8pt; color: #0038AD; font-weight: bold" tabindex="7">
<option selected value="0">_____________</option>
<option value="1">me</option>
<option value="2">yo</option>
<option value="3">mi</option>
</select>

<INPUT name="correct_1" id="correct_1" size="4" type="hidden" value="1">


Dejo el javascript modificado:

<script language="JavaScript">

function resolver() {
var i;
var total=56;
var correctas=0;
var escogidas=new Array(total);
var deberian_ser=new Array(total);
var temp;

//Estas son las que coge el alumno
for (i=1; i<=total; i++) {
temp=document.getElementById("pregunta_"+i).select edIndex;
escogidas[i]=temp.value;
}

//Estas son las que realmente son
for (i=1; i<=total;i++) {
deberian_ser[i]=document.getElementById("correct_"+i).value;
}

//Controlar que al menos conteste una pregunta
if (escogidas.length == 0){
alert("Debes contestar una pregunta por lo menos");
document.form1.pregunta_1.focus();

}
else {
for (i=1; i<=total; i++){
if (escogidas[i]==deberian_ser[i]) {
correctas++;
}
}
}

//Aquí habría que mostrar los resultados del test
document.form1.txt_correctas.value=correctas;

if (correctas < 7) {
document.form1.txt_nivel.value="A1";
}
}
</script>



Gracias otra vez!!
  #5 (permalink)  
Antiguo 11/02/2009, 07:22
Avatar de gersveo  
Fecha de Ingreso: julio-2008
Mensajes: 145
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Problema con select e input

por que no pruebas con esto

Cita:
var array = new Array();
for(i=0;i<56;i++){
array[i]=document.getElementById('tu_select_'+i).value;
}
sin usar
Cita:
for (i=1; i<=total; i++) {
temp=document.getElementById("pregunta_"+i).select edIndex;
escogidas[i]=temp.value;
}
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 02:04.