Usuario:ManuelRomero/NewPHP/formularios/Ejercicios/Ejercicio2

De WikiEducator
Saltar a: navegación, buscar

Volver

La imagen siguiente ilustra el objetivo de este ejercicio.#

En ella vemos una tira de distintas capturas de imagen

  1. Primero insertamos el nombre maría
    1. Al hacer submit vemos como aparece en la lista el nombre con un acceso
  2. Posteriormente insertamos otra vez el nombre maria
    1. Aparece ahora el mismo nombre con dos accesos
  3. Posteriormente insertamos otros nombres (pedro una vez y Nieves dos veces)
    1. Observamos como se actualiza la lista

FuncionamientoListaAccesos2.png

Ahí pongo un posible código que da solución al problema planteado
<!DOCTYPE html>
<html>
    <head>
        <meta charset="ISO-8859-1">
        <title></title>
    </head>
    <body/>
    <?php
 
    if ( $_POST[ 'enviar' ] ) {
        //Leo el array de nombres que vienen en campos ocultos
        $listaAccesos = ($_POST[ 'listaAccesos' ]) ? $_POST[ 'listaAccesos' ] : [ ];
        //Observa que este operado ternario es lo mismo que hacer
            // if ($_POST['listaAccesos']==null)
            //     $listaAccesos = []; o su equivalente  $listaAccesos=array();
            // else
            //     $listaAccesos =$_POST[ 'listaAccesos' ]
 
        //Leo en nuevo nombre y lo agrego al array
        //Si ya existiera la entrada simplemento modifico el valor de ese índice
    $nuevoAcceso = $_POST[ 'nombre' ] ? $_POST[ 'nombre' ] : "vacio";
 
    $listaAccesos[ $nuevoAcceso ] ++;
    }
 
    ?>
    <form action="listaAccesos.php" method=POST>
        <fieldset>
            <legend>Datos de acceso </legend>
            Nombre
            <input type="text" name="nombre" />
            <br/>
            <br/>
            <input type="submit" value="Acceder al sitio web" name="enviar" />
            <?php
 
            //Añado los input de tipo hidden con el contenido del array y visualizo
            echo "<hr/>Accesos hasta el momento <hr/>";
            foreach ( $listaAccesos as $nombre => $acceso ) {
                echo" <input type='hidden' name='listaAccesos[$nombre]'  value='$acceso' />";
                echo "$nombre : $acceso";
                echo "<br/>";
            }
 
 
 
            ?>
    </form>
 
</fieldse>
</form>
 
 
 
</body>
</html>
 
</php>