PHP - Aplicar estilos con valor de cookie

 
Vista:
Imágen de perfil de Álvaro
Val: 98
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Aplicar estilos con valor de cookie

Publicado por Álvaro (20 intervenciones) el 19/11/2019 00:56:02
Buenos días / tardes / noches. Estoy continuando el proyecto de la tienda de libros online, y ahora mismo lo único que me queda es aplicar el uso de una cookie y de una sesión. Con respecto a la cookie, tengo "implementado" un cambio de tema de la página entre claro y oscuro. Teniendo el siguiente select en HTML5:

1
2
3
4
5
6
7
8
<form action="../controller/Personalitation/ConfiguracionTema.php" method="post">
<select name="tema" style="background-color: lightgray">
<option>Claro</option>
<option>Oscuro</option>
</select>
<button type="submit" class="btn btn-dark"><span style="color: snow;">Cambiar tema</span>
</button>
</form>

Llamo al archivo especificado, donde creo la cookie con el estilo correspondiente a la elección del usuario:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$estiloBody = null;
 
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (isset($_POST["tema"])) {
 
        $estiloBody = determinarTema($_POST["tema"]);
 
        setcookie("tema", $estiloBody);
 
    }
}
 
 
function determinarTema($tema)
{
    if ($tema === "Oscuro") {
        return "background-color: rgba(0, 0, 0, .85); color: rgba(255, 255, 255, .85);";
    } else {
        return "background-color: rgba(255, 255, 255, .85); color: rgba(0, 0, 0, .85);";
    }
}

El tema es que me funciona, pero debo pulsar dos veces el botón para que se apliquen los cambios, sinceramente no sé por qué no se aplica el color simplemente obteniendo el valor de la cookie. Agradecería cualquier ayuda / consejo

Muchas gracias, y un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 2.237
Oro
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Aplicar estilos con valor de cookie

Publicado por joel (658 intervenciones) el 19/11/2019 08:44:04
Hola Álvaro, no veo donde utilizas la cookie en tu código, pero ten en cuenta, que cuando generas una cookie, esta no esta activa hasta la próxima carga de la pagina. La solución, para por crear la cookie y la variable global... algo así:

1
2
setcookie("tema", $estiloBody);
$_COOKIE["tema"]=$estiloBody;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar