Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - danflizz

#1
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.

Cita de: #!drvy en 16 Mayo 2015, 13:31 PM

Y finalmente para comprobar las preguntas y respuestas:

Código (php) [Seleccionar]


            // 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

            }
        }

        // Si no ha habido errores en las respuestas
        // incrementamos puntos. Si no, incrementamos errores.
        if(!$_error){ $puntos += $preguntas[$id]['puntos']; }
        else { $errores++; }

    }
}





Intente hacer el cambio de la siguiente forma

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
PHP / Validar mas de un checkbox seleccionado
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 (php) [Seleccionar]

¿Cuánto es 2+2?
<input type="checkbox" name="r81" value=".5"/>
      a) 4<br/>
      <input type="checkbox" name="r82" value=".5"/>
      b) cuatro<br />
      <input type="checkbox" name="r83" value="0"/>
      c) 6<br />
      <input type="checkbox" name="r84" value="0"/>
      d) 3<br/>
       <input type="checkbox" name="r85" value="0"/>
      e) ocho<br/>



if($_POST['r81']==".5" && $_POST['r82']==".5")
{
if(empty($_POST['r83'])==false && empty($_POST['r84'])==false && empty($_POST['r85'])==false)
{



$res = $r1+$r2+$r3+$r4+$r5+$r6+$r7+$r9+$r10;
$array = array($r1,$r2,$r3,$r4,$r5,$r6,$r7,$r9,$r10);

for($i=0; $i< count($array);$i++)
{
if($r1==0 || $r2==0 || $r3==0 || $r4==0 || $r5==0 || $r6==0 || $r7==0 || $r9==0 || $r10 == 0)
{
$error = $error +1;
}
}

$error1=1;
$total = $res * 10;
$erroresT = $error + $error1;

}
else
{
//cuando fueron seleccionadas SOLO las casillas correctas
$r82 = $_POST['r82'];
$r81 = $_POST['r81'];
$res = $r1+$r2+$r3+$r4+$r5+$r6+$r82+$r81+$r7+$r9+$r10;
$array = array($r1,$r2,$r3,$r4,$r5,$r6,$r7,$r9,$r10);

for($i=0; $i< count($array);$i++)
{
if($r1==0 || $r2==0 || $r3==0 || $r4==0 || $r5==0 || $r6==0 || $r7==0 || $r9==0 || $r10 == 0)
{
$error = $error +1;
}
}


$total = $res * 10;
$erroresT = $error + $error1;
echo "El resultado es: ".$total;
echo "Total de errores: ".$erroresT;
}
}



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