Rincón Uniciencista
  • Inicio
  • Índice
  1. Principal
  2. Estructura de Datos
  3. Actividad de aprendizaje 4 - Evidencia: Taller “Uso de formularios para transferencia”

Actividad de aprendizaje 4 - Evidencia: Taller “Uso de formularios para transferencia”

Publicado por Gfrodriguez el julio 24, 2016
Estructura de Datos

Se crea el archivo index.php, que es la página a la que accede el usuario.

<!DOCTYPE html>
<html>

<head>
    <title>Actividad Semana 4</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <style>
            .tg  {border-collapse:collapse;border-spacing:0;border-color:#999;}
            .tg td{font-family:Arial, sans-serif;font-size:14px;padding:5px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#999;color:#444;background-color:#F7FDFA;}
            .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:bold;padding:5px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#999;color:#fff;background-color:#26ADE4;}
        </style>
</head>
<?php

        /*
        Gabriel Rodríguez
        DESARROLLO WEB CON PHP(1229212)
        Evidencia: Taller “Uso de formularios para transferencia”
        */
//Se requieren las funciones para imprimir el escenario y para enviar las acciones del usuario
require("escenario.php");
require("accion.php");
//Se ejecuta el if cuando el usuario envie la informacion del formulario
if(isset($_REQUEST["Enviar"])){
                //Se captura la información enviada del formulario
                $fila = $_POST['fila'];
                $puesto= $_POST['puesto'];
                $accion= $_POST['accion'];
                $StringEscenario=$_POST['ListEscenario'];
                //El String generado en el input oculto se convierte en un Array
                $count=0;
                for($i=0;$i<5;$i++){
                    for($j=0;$j<5;$j++){
                        $count=5*$i+$j;
                        //Cada captura cada elemento del Array extrayendo dicho elemento del String
                        $ListEscenario[$i][$j]=substr($StringEscenario,$count,1);
                    }
                    $count=0;
                }
        //Se devuelve el Array con la información modificada por el usuario
        $ListEscenario=Accion($fila,$puesto,$accion,$ListEscenario);
        //Se ejecuta la funcion para mostrar el Escenario, dado el Array modificado
        Escenario($ListEscenario);
}
//Se ejecuta el else if cuando el usario borra la informacion del formulario y cuando se carga la página
else if(isset($_REQUEST["Reset"]) || !isset($_REQUEST["Enviar"])){
    $ListEscenario=array(array("L","L","L","L","L"),array("L","L","L","L","L"),array("L","L","L","L","L"),array("L","L","L","L","L"),array("L","L","L","L","L"));
    Escenario($ListEscenario);
}
?>
    
<body>
    <table style="margin:auto;">
        <form method="post">
            <!-- Se separa el array $ListEscenario en un String y de oculta-->
            <input type="text" name="ListEscenario" value="<?php foreach ($ListEscenario as $fila) {foreach ($fila as $puesto){echo $puesto;}}?>" style="display:none" />
            <!-- Se crean los inputs que van a capturar la información introducida por el usario y las acciones-->
            <tr>
                <td>Fila: </td>
                <td>
                    <!-- Se muesta la lista con las opciones posibles para la fila-->
                    <select name="fila">
                        <option size="4">1</option>
                        <option>2</option>
                        <option>3</option>
                        <option>4</option>
                        <option>5</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Puesto: </td>
                <td>
                    <!-- Se muesta la lista con las opciones posibles para la puesto-->
                    <select name="puesto">
                        <option size="4">1</option>
                        <option size="4">2</option>
                        <option size="4">3</option>
                        <option size="4">4</option>
                        <option size="4">5</option>
                    </select>
                </td>
            </tr>
            <!-- Se muestra el radio button con las acciones posibles-->
            <tr>
                <td>Reservar: </td>
                <td>
                    <input type="radio" name="accion" value="R" />
                </td>
            </tr>
            <tr>
                <td>Comprar: </td>
                <td>
                    <input type="radio" name="accion" value="V" />
                </td>
            </tr>
            <tr>
                <td>Liberar: </td>
                <td>
                    <input type="radio" name="accion" value="L" checked="checked" />
                </td>
            </tr>
            <tr>
                <!-- Se muestran los botones con las acciones de enviar la información o borrar toda la informacion ingresada-->
                <td>
                    <input type="submit" value="Enviar" name="Enviar" />
                </td>
                <td>
                    <input type="submit" value="Borrar" name="Reset" />
                </td>
            </tr>
        </form>
    </table>
</body>

Se crea la función responsable de crear las tabla con la información del Escenario, es decir, con las filas y los puestos disponibles, reservados o comprados, este caso la biblioteca que contiene la función se llama "escenario.php"

<?php
function Escenario($ListEscenario){
    //Se crea la tabla y sus encabezados
echo "<table class='tg' border='1' style='margin:auto;'>";
            echo "<tr>";
            echo "<th colspan='6'>Escenario</th>";
            echo "<tr>";
                /*-- Se crean los encabezados de las tabla*/
                echo "<th></th>
                <th>1</th>
                <th>2</th>
                <th>3</th>
                <th>4</th> 
                <th>5</th>
            </tr>";
    //Se recorre el Array mediante con un foreach y se imprime cada fila y columna de la tabla
$i=1;
foreach ($ListEscenario as $fila) {
    echo "<tr>";
       echo "<th>";
       echo $i;
       echo "</th>";
    foreach ($fila as $silla) {
        echo "<td>";
        echo $silla;
        echo "</td>";
    }
    echo "</tr>";
    $i++;
    }
echo "</table>";
}
?>

Se crea la función responsable de procesar las acciones del usuario, al liberar, reservar o comprar un puesto ubicado en determinada fila, la biblioteca que contiene la acción se llamará "accion.php"

<?php
function Accion($fila,$puesto,$accion,$ListEscenario){
        //Se evalua la opción del usuario dependiendo de lo contenido en el Array
        //Si el puesto elegido por el usuario esta libre se modifica el Array con la acción elegida
        if($ListEscenario[$fila-1][$puesto-1]=="L"){
            $ListEscenario[$fila-1][$puesto-1]=$accion;
        }
        //Si el puesto elegido por el usuario esta vendido se muestra una alerta con notificando en cada caso lo sucedido
        else if($ListEscenario[$fila-1][$puesto-1]=="V"){
            echo "<script>alert('El puesto ya esta vendido";
            if($accion=="L"){echo " no se puede liberar";}
            else if($accion=="R"){echo " no se puede reservar";}
            else if($accion=="V"){echo " no se puede volver a vender";}
            echo "')";
            echo "</script>'";
        }
        //Si el puesto elegido por el usuario esta reservado y la accion es reservar se muestra una alerta indicando que ya esta reservado
        else if($ListEscenario[$fila-1][$puesto-1]=="R" && $accion=="R"){
            echo "<script>
            alert('El puesto ya esta Reservado');
            </script>'";
        }
        //Si el puesto esta reservado y la accion es diferente a reservar se modifica el array con la accion elegida por el usuario
        else if($ListEscenario[$fila-1][$puesto-1]=="R" && $accion!="R"){
            $ListEscenario[$fila-1][$puesto-1]=$accion;
        }
        //Se retorna el Array modificado
        return $ListEscenario;
}
?>

Comentarios

  1. Dayan29 de julio de 2016, 15:43

    Buen aporte

    ResponderEliminar
    Respuestas
      Responder
  2. Unknown10 de abril de 2017, 22:12

    exelente

    ResponderEliminar
    Respuestas
      Responder
  3. Unknown10 de junio de 2017, 8:59

    me sale error

    ResponderEliminar
    Respuestas
      Responder
  4. Gfrodriguez11 de junio de 2017, 9:54

    ¿En qué línea le da error?, ¿Qué versión de PHP usa?, ¿Si esta guardando los archivos de las funciones en la misma carpeta?

    ResponderEliminar
    Respuestas
      Responder
  5. christiansalazar4 de septiembre de 2017, 16:51

    Hola buenas tardes he pegado el codigo y no hace nada que pena la molestia no se por que sera??

    ResponderEliminar
    Respuestas
      Responder
  6. Unknown4 de agosto de 2018, 23:59

    gracias

    ResponderEliminar
    Respuestas
      Responder
  7. Anónimo30 de octubre de 2018, 7:35

    No te sale nada porque debes poner en el form method="post" la propiedad name ='con el nombre de tu archivo en este caso index.php'

    ResponderEliminar
    Respuestas
      Responder
  8. Unknown21 de noviembre de 2019, 19:35

    Excelente trabajo, me estuve quemando las neuronas desarrollando este ejercicio, y gaste muchas horas haciéndolo como creía, lo tuve a un pelo, pero al ver que eran mas de 500 lineas de código, me dije, creo que algo esta mal. lo único por agregar, es que las funciones se pueden hacer en un mismo archivo, para que 2?

    ResponderEliminar
    Respuestas
      Responder
  9. Ricardo Luque Rodríguez perfil profesional27 de julio de 2020, 18:08

    Muy buen trabajo...muchas gracias¡ Me fue de gran ayuda¡ Bendiciones¡¡¡

    ResponderEliminar
    Respuestas
      Responder
  10. LAINETH FURNIELES9 de mayo de 2021, 14:48

    excelente

    ResponderEliminar
    Respuestas
    1. Gfrodriguez13 de julio de 2021, 18:06

      Gracias por su comentario.

      Eliminar
      Respuestas
        Responder
    2. Responder
  11. Anónimo21 de octubre de 2021, 1:54

    Muchas gracias amigo, no sabes cuanto me ayudaste!!

    ResponderEliminar
    Respuestas
    1. Unknown31 de octubre de 2021, 14:28

      me pasas el codigo amigo?:(

      Eliminar
      Respuestas
        Responder
    2. Responder
  12. Unknown31 de octubre de 2021, 11:53

    alguien que me pase ese codigo ya resuelto por favor 😭😭😭

    ResponderEliminar
    Respuestas
      Responder
  13. Unknown27 de marzo de 2022, 16:47

    por favor me lo podrian pasar resuelto por favor hasta mañana debo entregarlo

    ResponderEliminar
    Respuestas
      Responder
  14. Anónimo16 de marzo de 2023, 10:43

    Muchas gracias! me funciono perfecto

    ResponderEliminar
    Respuestas
      Responder
  15. Anónimo16 de marzo de 2023, 12:45

    Gracias

    ResponderEliminar
    Respuestas
      Responder
Añadir comentario
Cargar más...

Publicar un comentario

Buscar este blog
Entradas populares
Ordenar N números en forma descendente o ascendente
Serie de Fibonacci de los N primeros números en C++
Rincón Uniciencista
5 preguntas sobre el Disco Duro
Capítulo 9. Detección y Corrección de Errores
Categorias
  • Arquitectura de Computadores
  • Aseguramiento de la Calidad del Software
  • Bases de Datos
  • ChatGPT
  • Comunicación de Datos
  • Estructura de Datos
  • Gerencia de Tecnología
  • Inglés
  • Móviles
  • NTIC
  • Plantillas
  • POO
  • Programación Lineal
  • Simulación y Modelaje
  • Sistemas de Información
  • Sistemas Operativos
  • Telemática y Redes
  • Teoría General de Sistemas
  • Trucos
Archivo del Blog
Cargando...
Visitas

Copyright © | Rincón Uniciencista | Diseñado por gfrodriguez | Con la tecnología de Blogger