Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Samylmy94 en 19 Febrero 2014, 01:48 am



Título: Cambiar color de Fondo a través de un checkbox/Switch y GET
Publicado por: Samylmy94 en 19 Febrero 2014, 01:48 am
Hola a todos!! Tengo una duda en mi tarea de PHP, lo que me piden hacer es cambiar de color de fondo en un checkbox donde vienen todos los colores, masomenos mi codigo esta así:


Código
  1. <!DOCTYPE html>
  2. <meta charset="utf-8">
  3. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  4. <title>Colores</title>
  5. <link rel="stylesheet" href="">
  6. </head>
  7.  
  8.  
  9.  
  10.  
  11. <h2 class="titulo">Bienvenido </h2>
  12.  
  13. <form action="formularios.html" method="get">
  14.  
  15. <label>Selecciona Color</label>
  16.  
  17. <option value="<?php echo $color; ?>" name="selecciona_color"></option>
  18.  
  19. <option value="<?php echo $color; ?>" name="Blanco">Blanco</option>
  20.  
  21. <option value="<?php echo $color; ?>" name="Negro">Negro</option>
  22.  
  23. <option value="<?php echo $color; ?>" name="Rojo">Rojo</option>
  24.  
  25. <option value="<?php echo $color; ?>" name="Verde">Verde</option>
  26.  
  27. <option value="<?php echo $color; ?>" name="Azul">Azul</option>
  28.  
  29. <option value="<?php echo $color; ?>" name="Amarillo">Amarillo</option>
  30.  
  31. <option value="<?php echo $color; ?>" name="Morado">Morado</option>
  32.  
  33. </select>
  34.  
  35. <input type="submit" name="cambiar_btn" id="cambiar_btn" value="Cambiar">
  36.  
  37.  
  38. </form>
  39.  
  40.  
  41.  
  42. </body>
  43. </html>

Pero después de ahí, no sé como agregar el SWITCH para que pueda cambiar de color a través del metodo GET y cada vez que abra la páugina, debe de recordar lo que se guardo por última vez antes de cerrar. Por lo tanto usaria un ISSET.

¿Cómo lo puedo hacer?

Estoy utilizando el lenguaje PHP.

MOD: No escribir todo en negrita, utilizar etiquetas [code][/code], dudas de PHP en el subforo de PHP. Leer reglas -> Normas del subforo de Desarrollo Web (http://foro.elhacker.net/desarrollo_web/normas_del_subforo_de_desarrollo_web-t407889.0.html)


Título: Re: Cambiar color de Fondo a través de un checkbox/Switch y GET
Publicado por: #!drvy en 19 Febrero 2014, 18:52 pm
Tienes varios errores.

  • El <select> debe llevar atributo name para poder identificarlo en PHP.
  • Lo que imprimes con php en los <option>, no tiene ningún sentido.
  • Los <option> NO llevan atributo name, solo deben llevar atributo value.
  • El atributo action de <form> debe llevar a un .php para poder trabajar el resultado.

Conceptos a utilizar.

  • $_GET de PHP -> http://www.php.net/manual/es/reserved.variables.get.php
  • $_SESSION de PHP -> http://www.php.net/manual/es/book.session.php
  • SWITCH de PHP -> http://www.php.net/manual/es/control-structures.switch.php
  • SELECT de HTML -> www.w3schools.com/TAGS/tag_select.asp

Ejemplo en un solo archivo.
Código
  1. <?php
  2. // Inicio una session.
  3.  
  4. if(!empty($_GET['color_fondo'])){
  5.  
  6. switch($_GET['color_fondo']){
  7. case 'blanco': $color = '#ffffff'; break;
  8. case 'negro': $color = '#000000'; break;
  9. case 'rojo': $color = '#FF0000'; break;
  10. case 'verde': $color = '#00FF00'; break;
  11. case 'azul': $color = '#0000FF'; break;
  12. case 'amarillo': $color = '#FFFF00'; break;
  13. case 'morado': $color = '#800080'; break;
  14. // Color por defecto..
  15. case 'no': default: $color = '#fff'; break;
  16. }
  17.  
  18. $_SESSION['color_fondo'] = $color;
  19. }
  20. ?>
Código
  1. <!doctype html>
  2. <html lang="es">
  3. <meta charset="UTF-8">
  4. <title>Prueba</title>
  5. <style type="text/css">
  6. <?php
  7. // Si la session no esta vacia, asigno con css el fondo
  8. // a la pagina.
  9. if(!empty($_SESSION['color_fondo'])){
  10. echo 'body {background:'.$_SESSION['color_fondo'].';}';
  11. }
  12. ?>
  13. </style>
  14. </head>
  15. <!-- dejo el action vacio para que actue sobre la misma pagina -->
  16. <form action="" method="GET">
  17. <select name="color_fondo">
  18. <option value="no" selected disabled>Selecciona un color.</option>
  19. <option value="blanco">Blanco</option>
  20. <option value="negro">Negro</option>
  21. <option value="rojo">Rojo</option>
  22. <option value="verde">Verde</option>
  23. <option value="azul">Azul</option>
  24. <option value="amarillo">Amarillo</option>
  25. <option value="morado">Morado</option>
  26. </select>
  27. <input type="submit" value="Cambiar color" />
  28. </form>
  29. </body>
  30. </html>

Saludos