Ver Mensaje Individual
  #7 (permalink)  
Antiguo 26/11/2013, 16:25
ElleLawliet
 
Fecha de Ingreso: noviembre-2013
Mensajes: 47
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Formulario php preguntas de 1 en una

Ostras, es perfecto! Muchisimas gracias de verdad, es exactamente lo que necesitava! El unico problema que tengo ahora es que no me comprueba bien las respuestas correctas (mi array es de 10 preguntas) aunque eso no tendria que afectar, pongo el codigo por si la e pifiado en algo, y ahora se me a ocurrido que probare de hacer que el boton de atras no salga con la primera pregunta, y que el boton de adelante no salga en la ultima. De nuevo muchisimas gracias!

Código PHP:
<?php
session_start
();

$preguntas = array(
    Array(
'pregunta' =>'En quin lloc s\'executa el codi en PHP?',
        
'respuestas' => Array('Servidor','Client'),
        
'correcta' => 
    
),
    Array(
'pregunta' =>'Quina d\'aquestes són marques per a la inserció del codi PHP en les pàginas HTML?',
        
'respuestas' => array('< ? y ? >','< php >< /php >','<# y #>'),
        
'correcta' => 1
    
),
    Array(
'pregunta' =>'En quin atribut del formulari especifiquem la pàgina a la que s\'han d\'enviar les dades del mateix?',
        
'respuestas' => array('name','file','action','description'),
        
'correcta' => 3
    
),
    Array(
'pregunta' =>'Quina d\'aquestes instrucciones està correctament escrita en PHP?',
        
'respuestas' => array('if (a=0) print a','if (a==0) echo "hola mon";','if (a==0) { echo ok }','if (a==0): print a;'),
        
'correcta' => 2
    
),
    Array(
'pregunta' =>'Quina d\'aquestes instruccions PHP mostrarà per pantalla correctament el missatge "Hola Mon" en     negreta?',
        
'respuestas' => array('print < strong >Hola Mundo < /strong>;','print (< strong>Hola Mundo< /strong>);','print ("< strong>Hola Mundo < /strong>");'),
        
'correcta' => 3
    
),
    Array(
'pregunta' =>'Dos de las formes de passar els paràmetres entre páginas PHP són:',
        
'respuestas' => array('Require i Include','Get i Put','Post i Get','Into i Include'),
        
'correcta' => 3
    
),
    Array(
'pregunta' =>'Un array es...',
        
'respuestas' => array('Un conjunt de caràcters alfanumérics','Un sistema per convertir una variable de text a un número','Un conjunt d\'elements'),
        
'correcta' => 3
    
),
    Array(
'pregunta' =>'Com es defineix una variable de tipus string en PHP?',
        
'respuestas' => array('char str;','string str;','En PHP no es defineix el tipus de les variables explícitament'),
        
'correcta' => 3
    
),
    Array(
'pregunta' =>'Tenim el següent codi: $a=”10”; $b=$a + 2; Quin serà el valor de $b?',
        
'respuestas' => array('"12"','12','"102"','Cap (no es pot sumar un número a una cadena)'),
        
'correcta' => 
    
),
    Array(
'pregunta' =>'Per a què serveix el següent codi?: if (isset(\$variable)){}',
        
'respuestas' => array('Recorre un array de nom $variable','Crea una variable de nom $variable','Verifica si la variable $variable està definida i té un valor no nul',
        
'Cap de les anteriors'),
        
'correcta' => 3
    
)
);

$totalPreguntas=count($preguntas);
if (!isset(
$_SESSION["respuestas"]))
{
    
$_SESSION["respuestas"]=array();
    for(
$i=0;$i<$totalPreguntas;$i++)
    {
        
$_SESSION["respuestas"][]=0;
    }
}
 
$pregunta=(isset($_POST["pregunta"]))?(int)$_POST["pregunta"]:0;
$respuesta=(isset($_POST["respuesta"]))?(int)$_POST["respuesta"]:0;
 
if (isset(
$_POST["solucion"]))
//Entra cuando se pulsa el boton de ver resultado
    
$_SESSION["respuestas"][$pregunta]=$respuesta;
    
    
$totalPreguntas=count($preguntas);
    
$correctas=0;
    for (
$i=0;$i<$totalPreguntas;$i++)
    {
        if (
$preguntas[$i]["correcta"]==$_SESSION["respuestas"][$i]) $correctas++;
    }
 
    
?>
    <html>
    <head>
        <title>Respuestas</title>
    </head>
    <body>
        <h2>Respuestas correctas</h2>
        <p>(<?php echo $correctas?> de <?php echo $totalPreguntas?>)</p>
        <a href="examen3.php">Volver a las preguntas</a>
    </body>
    </html>
 
<?php 
}
else
//Entra cuando se quiere responder a alguna de las preguntas
    
$adelante=isset($_POST["adelante"]);
    
$atras=isset($_POST["atras"]);
 
    if (
$adelante){
        
$_SESSION["respuestas"][$pregunta]=$respuesta;
        
$pregunta=min(count($preguntas)-1,$pregunta+1);
    }
    else if(
$atras){
        
$_SESSION["respuestas"][$pregunta]=$respuesta;
        
$pregunta=max(0,$pregunta-1);
    }
    
?>
    <html>
    <head>
        <title>Pregunta N-<?php echo ($pregunta+1); ?></title>
    </head>
    <body>
        <form action="examen3.php" method="POST">
        <h2>Pregunta N-<?php echo ($pregunta+1); ?></h2>
        <p><?php echo htmlentities($preguntas[$pregunta]["pregunta"]); ?></p>
        <?php for($i=0;$i<count($preguntas[$pregunta]["respuestas"]);$i++) { 
            
$tachado=($_SESSION["respuestas"][$pregunta]==$i)?'checked="checked"':'';
            
?>
            <input name="respuesta" value="<?php echo $i?>" type="radio" <?php echo $tachado?>/>
            <?php echo htmlentities($preguntas[$pregunta]["respuestas"][$i]); ?><br/>
        <?php ?>
        <input type="hidden" name="pregunta" value="<?php echo $pregunta?>" />
        <input type="submit" name="adelante" value="Adelante" />
        <input type="submit" name="atras" value="Atras" /> 
        <?php if($pregunta==$totalPreguntas-1) { ?>
        <input type="submit" name="solucion" value="Ver solucion" />
        <?php ?>
        </form>
    </body>
    </html>
<?php ?>