$numeroEntradas = intval($_POST['entradas']); // Para cada zona: // - Actualizamos el mensaje por el valor recibido de venderEntradas (o éxito o error) // - Actualizamos el número de entradas de la zona en la que hayamos vendido. // Si se diera el caso de que la zona no está en la lista, guardamos en mensaje un error switch ($zona) { case 1: $resultado["mensaje"] = $zonaPrincipal->venderEntradas($numeroEntradas); $resultado["entradasPrincipal"] = $zonaPrincipal->getEntradas(); break; case 2: $resultado["mensaje"] = $zonaCompraVenta->venderEntradas($numeroEntradas); $resultado["entradasCompraVenta"] = $zonaCompraVenta->getEntradas(); break; case 3: $resultado["mensaje"] = $zonaVIP->venderEntradas($numeroEntradas); $resultado["entradasVIP"] = $zonaVIP->getEntradas(); break; default: $resultado["mensaje"] = "La zona que has seleccionado no existe."; break; } // Actualizamos las entradas en la sesión (para mantener los datos) $_SESSION['entradas'] = [$zonaPrincipal->getEntradas(), $zonaCompraVenta->getEntradas(), $zonaVIP->getEntradas()]; } // Función para cambiar las variables de la vista por sus valores // IMPORTANTE: si una variable tiene el '&' delante no se clona dentro de la función sino que usa la existente. // Por defecto todos los parámetros de las funciones son clones de los originales function actualizarVista(&$vista, $array) { // Por cada índice de $resultado cambiamos el contenido de la variable de $vista