Коментарии

<?php
// Inicializamos el array para almacenar todas las reservas
$reservasCompletas = array();

// Verificamos si el formulario se ha enviado
if ($_SERVER["REQUEST_METHOD"] == "POST") {
   
// Recuperamos los datos del formulario
   
$hab $_POST["habitacion"];
   
$nochesReservadas = (int)$_POST["noches"];
   
$fechaReserva $_POST["fecha"];

   
// Crear un array de reserva individual
   
$reserva = [
       
'habitacion' => $hab,
       
'noches' => $nochesReservadas,
       
'fecha' => $fechaReserva,
       
    ];

   
// Si ya hay reservas previas, las recuperamos y reconstruimos los arrays
   
if (!empty($_POST['reservas_previas'])) {
       
$reservasPrevias explode(","$_POST['reservas_previas']);
        foreach (
$reservasPrevias as $reservaStr) {
           
// Convertimos cada reserva de cadena a array asociativo
           
$reservaArray explode("|"$reservaStr);
           
$reservasCompletas[] = [
               
'habitacion' => $reservaArray[0],
               
'noches' => $reservaArray[1],
               
'fecha' => $reservaArray[2],
               
            ];
        }
    }

   
// Añadimos la nueva reserva
   
$reservasCompletas[] = $reserva;
}
?>

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Reserva de Hotel</title>
</head>
<body>
    <h1>Reserva de Habitación</h1>
    <form action="" method="post">
        <!-- Menú desplegable para seleccionar tipo de habitación -->
        <label for="habitacion">Tipo de habitación: </label>
        <select name="habitacion" id="habitacion" required>
            <option value="Sencilla">Sencilla</option>
            <option value="Doble">Doble</option>
            <option value="Suite">Suite</option>
        </select>

        <!-- Campo para la cantidad de noches -->
        <label for="noches">Número de noches: </label>
        <input type="number" id="noches" name="noches" min="1" step="1" value="1" required>

        <!-- Campo para la fecha de llegada -->
        <label for="fecha">Fecha de llegada: </label>
        <input type="date" id="fecha" name="fecha" required>

        <!-- Campo oculto para almacenar las reservas previas, usamos implode para convertir el array en cadena -->
        <input type="hidden" name="reservas_previas" value='<?php 
           
// Convertimos las reservas en cadenas usando | para separar valores y , para separar reservas
           
$reservasStr array_map(function($reserva) {
                return 
implode("|"$reserva);
            }, 
$reservasCompletas);
            echo 
implode(","$reservasStr);
       
?>'>

        <!-- Botón para enviar el formulario -->
        <button type="submit">Agregar reserva</button>
    </form>

    <h2>Resumen de la reserva</h2>

    <?php if (!empty($reservasCompletas)): ?>
        <?php foreach ($reservasCompletas as $reserva): ?>
            <p>
                Habitación: <?= $reserva['habitacion'?> <br>
                Noches: <?= $reserva['noches'?> <br>
                Fecha de llegada: <?= $reserva['fecha'?> <br>
               
            </p>
        <?php endforeach; ?>
    <?php else: ?>
        <p>No hay reservas realizadas aún.</p>
    <?php endif; ?>
</body>
</html>
2024-10-18 11:09:01
http://php5.kiev.ua/manual/ru/language.functions.html

    Поддержать сайт на родительском проекте КГБ