elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: [1]
1  Programación / PHP / Re: Validar mas de un checkbox seleccionado en: 17 Mayo 2015, 03:00 am
Muchas gracias,
ya lo implemente así, y tengo duda en la parte de los aciertos, en los errores todo bien, lo cuenta como debe de ser. Pero a la hora de marcar solo las dos primeras casillas, el resultado me da solo 0.5, y no esta contando el valor de la segunda casilla. Lo cual el resultado debería de ser 1.


Y finalmente para comprobar las preguntas y respuestas:

Código
  1.  
  2.            // si la respuesta existe y es falsa
  3.            if(isset($preguntas[$id]['respuestas'][$rep]) &&
  4.                $preguntas[$id]['respuestas'][$rep] == false){
  5.  
  6.                $_error=true; // hay un error
  7.                break; // Dejamos de comprobar respuestas de esta pregunta
  8.  
  9.            }
  10.        }
  11.  
  12.        // Si no ha habido errores en las respuestas
  13.        // incrementamos puntos. Si no, incrementamos errores.
  14.        if(!$_error){ $puntos += $preguntas[$id]['puntos']; }
  15.        else { $errores++; }
  16.  
  17.    }
  18. }
  19.  
  20.  



Intente hacer el cambio de la siguiente forma
Código:
 foreach((array)$respuesta as $rep)
{
 
            // si la respuesta existe y es falsa
            if(isset($preguntas[$id]['respuestas'][$rep]) && $preguntas[$id]['respuestas'][$rep] == false)
       {
 
                $_error=true; // hay un error
                break; // Dejamos de comprobar respuestas de esta pregunta
 
            }
else
{
if(isset($preguntas[$id]['respuestas'][$rep]) && $preguntas[$id]['respuestas'][$rep] == true)
{
$puntos += $preguntas[$id]['puntos'];
}
}
        }
 
        // Si no ha habido errores en las respuestas
        // incrementamos puntos. Si no, incrementamos errores.
        if($_error==true)
{
$errores++;
}



eso me cuenta ambos puntos, pero eso quiere decir que siempre me los contará, es decir al momento de elegir las 5 casillas, me incrementa estos también.

Lo único que se me ocurre sería restar el resultado de los errores para que me de la calificación correcta.

Saludos
2  Programación / PHP / Validar mas de un checkbox seleccionado en: 16 Mayo 2015, 02:35 am
Tengo un examen donde en una pregunta, pongo 5 checkbox donde el usuario tiene que elegir 2 respuestas, pues 2 respuestas de ahí son correctas. Estoy atorada cuando el usuario selecciona los 5 checkbox, lo cual debería de marcar que la calificación es 0, pues no es correcto seleccionar los 5 si solo pide 2.

Tengo esto en mi código
Código
  1. ¿Cuánto es 2+2?
  2. <input type="checkbox" name="r81" value=".5"/>
  3.       a) 4<br/>
  4.       <input type="checkbox" name="r82" value=".5"/>
  5.       b) cuatro<br />
  6.       <input type="checkbox" name="r83" value="0"/>
  7.       c) 6<br />
  8.       <input type="checkbox" name="r84" value="0"/>
  9.       d) 3<br/>
  10.        <input type="checkbox" name="r85" value="0"/>
  11.       e) ocho<br/>
  12.  
  13.  
  14.  
  15. if($_POST['r81']==".5" && $_POST['r82']==".5")
  16. {
  17. if(empty($_POST['r83'])==false && empty($_POST['r84'])==false && empty($_POST['r85'])==false)
  18. {
  19.  
  20.  
  21.  
  22. $res = $r1+$r2+$r3+$r4+$r5+$r6+$r7+$r9+$r10;
  23. $array = array($r1,$r2,$r3,$r4,$r5,$r6,$r7,$r9,$r10);
  24.  
  25. for($i=0; $i< count($array);$i++)
  26. {
  27. if($r1==0 || $r2==0 || $r3==0 || $r4==0 || $r5==0 || $r6==0 || $r7==0 || $r9==0 || $r10 == 0)
  28. {
  29. $error = $error +1;
  30. }
  31. }
  32.  
  33. $error1=1;
  34. $total = $res * 10;
  35. $erroresT = $error + $error1;
  36.  
  37. }
  38. else
  39. {
  40. //cuando fueron seleccionadas SOLO las casillas correctas
  41. $r82 = $_POST['r82'];
  42. $r81 = $_POST['r81'];
  43. $res = $r1+$r2+$r3+$r4+$r5+$r6+$r82+$r81+$r7+$r9+$r10;
  44. $array = array($r1,$r2,$r3,$r4,$r5,$r6,$r7,$r9,$r10);
  45.  
  46. for($i=0; $i< count($array);$i++)
  47. {
  48. if($r1==0 || $r2==0 || $r3==0 || $r4==0 || $r5==0 || $r6==0 || $r7==0 || $r9==0 || $r10 == 0)
  49. {
  50. $error = $error +1;
  51. }
  52. }
  53.  
  54.  
  55. $total = $res * 10;
  56. $erroresT = $error + $error1;
  57. echo "El resultado es: ".$total;
  58. echo "Total de errores: ".$erroresT;
  59. }
  60. }
  61.  
  62.  

El resultado de seleccionar la dos casillas correctas y las demas sin seleccionar me muestra lo siguiente:

El resultado es: 100 Total de errores: 0

Y el resultado de seleccionar las 5 casillas me muestra:

 El resultado es: 100 Total de errores: 0

El resultado esperado debería ser:
El resultado es: 90 Total de errores: 1


Las variables $r1 .... $r10 son de otras preguntas que si esta validando bien.
El problema son las variables $r81,$r82,$r83,$r84,$r85



Si alguien me pudiera ayudar estaría muy agradecida.

Saludos
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines