Foros del Web » Programando para Internet » PHP »

Cambio de valor de una variable y su resultado.

Estas en el tema de Cambio de valor de una variable y su resultado. en el foro de PHP en Foros del Web. Hola, tengo un pequeño problema en php, quiero hacer que el fondo de una pagina cambie segun lo elegido en una lista de formulario, es ...
  #1 (permalink)  
Antiguo 17/08/2008, 07:01
 
Fecha de Ingreso: agosto-2008
Mensajes: 16
Antigüedad: 15 años, 8 meses
Puntos: 0
Cambio de valor de una variable y su resultado.

Hola, tengo un pequeño problema en php, quiero hacer que el fondo de una pagina cambie segun lo elegido en una lista de formulario, es decir:

Primero tengo esto debajo del head

Código PHP:
<?php
$img2
='bground.jpg';
?>


<?php
echo "<body bgcolor='#FFFFFF' style='background-image:url(" $img2 "); background-repeat:repeat-x; margin:0px; margin-top:0px;' onLoad='MM_preloadImages('sdd2.png')'>";
?>
Declaro la variable con una imagen, y establezco en el body que cargue la imagen segun el contenido de la variable, al final de la pagina tengo:

Código PHP:
<form action="" method="post">
<select name="temas">
<option value="<?php $img2='bground.jpg'?>" >Estilo 1</option>
<option value="<?php $img2='bground2.jpg'?>" >Estilo 2</option>
</select>
<input type="submit" value="Aceptar">
</form>

tambien pongo en una parte de la pagina:
Código PHP:
<?php echo $img2?>
para ver con que valor empieza la variable, y siempre que accedo su valor es:
bground2.jpg
sin embargo el fondo que se ve en la web es "bground.jpg"

sera que al cargar la pagina (en orden) se carga la variable img2, como bground.jpg (se muestra la imagen bground.jpg como fondo) y al terminar de cargar el codigo se estable la variable como bground2.jpg por el segundo value?
a pesar de que la seleccione y le de a enviar, nunca cambia el fondo, siempre se ve el primero, y siempre pone que la variable tiene el valor "bground2.jpg"
no lo entiendo muy bien xd.

a ver si alguien puede darme alguna ayudita, que seguro que esto es una chorrada, pero no estoy muy puesto en php, (aparte, si quiero que los usuarios que visiten la pagina, vean el fondo que eligieron, necesitaria crear sesiones o registrar cookies no?, si no no se que ocurrira cada vez que se actualice la pagina xd
  #2 (permalink)  
Antiguo 17/08/2008, 07:14
 
Fecha de Ingreso: mayo-2005
Ubicación: Patzcuaro
Mensajes: 106
Antigüedad: 19 años
Puntos: 2
Respuesta: Cambio de valor de una variable y su resultado.

Si mi dislexia no me hizo una mala jugada.

Creo que tu problema es que siempre declaras tu variable


<?php
$img2='bground.jpg';
?>


entonces podria ser algo asi.


if (isset($_POST["temas"]))// si se envio el form con el campo temas..
$img2=$_POST["temas"];
else
$img2='bground.jpg';
__________________
_
  #3 (permalink)  
Antiguo 17/08/2008, 07:22
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Cambio de valor de una variable y su resultado.

Cita:
Iniciado por Riwer Ver Mensaje
Hola, tengo un pequeño problema en php, quiero hacer que el fondo de una pagina cambie segun lo elegido en una lista de formulario, es decir:

Primero tengo esto debajo del head

Código PHP:
<?php
$img2
='bground.jpg';
?>


<?php
echo "<body bgcolor='#FFFFFF' style='background-image:url(" $img2 "); background-repeat:repeat-x; margin:0px; margin-top:0px;' onLoad='MM_preloadImages('sdd2.png')'>";
?>
Declaro la variable con una imagen, y establezco en el body que cargue la imagen segun el contenido de la variable, al final de la pagina tengo:

Código PHP:
<form action="" method="post">
<select name="temas">
<option value="<?php $img2='bground.jpg'?>" >Estilo 1</option>
<option value="<?php $img2='bground2.jpg'?>" >Estilo 2</option>
</select>
<input type="submit" value="Aceptar">
</form>

tambien pongo en una parte de la pagina:
Código PHP:
<?php echo $img2?>
para ver con que valor empieza la variable, y siempre que accedo su valor es:
bground2.jpg
sin embargo el fondo que se ve en la web es "bground.jpg"

sera que al cargar la pagina (en orden) se carga la variable img2, como bground.jpg (se muestra la imagen bground.jpg como fondo) y al terminar de cargar el codigo se estable la variable como bground2.jpg por el segundo value?
a pesar de que la seleccione y le de a enviar, nunca cambia el fondo, siempre se ve el primero, y siempre pone que la variable tiene el valor "bground2.jpg"
no lo entiendo muy bien xd.

a ver si alguien puede darme alguna ayudita, que seguro que esto es una chorrada, pero no estoy muy puesto en php, (aparte, si quiero que los usuarios que visiten la pagina, vean el fondo que eligieron, necesitaria crear sesiones o registrar cookies no?, si no no se que ocurrira cada vez que se actualice la pagina xd
El <form ...> no tiene ningun action, ponle el nombre del fichero php donde haces la asignacion del fondo.
  #4 (permalink)  
Antiguo 17/08/2008, 07:25
 
Fecha de Ingreso: agosto-2008
Mensajes: 16
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Cambio de valor de una variable y su resultado.

Gracias por la ayuda, pero el codigo no me funciona:

si sustituyo

Código PHP:
<?php
$img2
='bground.jpg';
?>
por

Código PHP:
<?php
if (isset($_POST["temas"])) // si se envio el form con el campo temas..
$img2=$_POST["temas"];
else
$img2='bground.jpg';
?>
cada vez que pulso en "enviar" en cualquiera de los 2 estilos que muestra el form, el fondo desaparece (en ambos casos)
aparte, aun sigue mostrando esta linea:
Código PHP:
<?php echo $img2?>
que siempre la variable tiene el valor bground2.jpg (y eso es lo que no entiendo)
porque, accedo la primera vez (se ve el primer fondo "bground.jpg", el echo dice que la variable tiene el valor "bground2.jpg", y si le doy a enviar en el form cualquier opcion, desaparece el fondo, y el "echo" sigue diciendo que el valor de $img2 es bground2.jpg, asi que no tengo ni idea del fallo, (y no hay ningun codigo php mas en la pagina que use la variable $img2)



EDIT: el form no tiene action porque el cambio es en el propio fichero

Otro EDIT: si eliminio esta linea:
<option value="<?php $img2='bground2.jpg'; ?>" >Estilo 2</option>

La variable siempre se queda en bground.jpg
por lo que eso significa que cada vez que se carga la pagina la variable se establece segun la declaracion de la ultima linea de "option value" del form, y lo hace solo al cargar sin que yo le de a enviar en ningun momento.
Debo usar otro codigo en el value del form para que cambie la variable $img2? y, aparte, si la variable siempre quedaba declarada como "bground2.jpg" porque se muestra siempre "bground.jpg"???
(por si las dudas las 2 imagenes estan correctamente en su sitio)

Última edición por Riwer; 17/08/2008 a las 07:36
  #5 (permalink)  
Antiguo 17/08/2008, 08:03
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Cambio de valor de una variable y su resultado.

Ya he encontrado tu fallo, lo tienes en el formulario, donde tu tienes:
Código HTML:
<form action="" method="post">
<select name="temas">
<option value="<?php $img2='bground.jpg'; ?>" >Estilo 1</option>
<option value="<?php $img2='bground2.jpg'; ?>" >Estilo 2</option>
</select>
<input type="submit" value="Aceptar">
</form> 
debes poner esto:
Código HTML:
<form action="" method="post">
<select name="temas">
<option value="bground.jpg" >Estilo 1</option>
<option value="bground2.jpg" >Estilo 2</option>
</select>
<input type="submit" value="Aceptar">
</form> 
Ves el cambio? prueba asi, ya veras como si que funcionara :) al menos, el echo $img2; deberia de mostrarte el fondo seleccionado

saludos
  #6 (permalink)  
Antiguo 17/08/2008, 08:19
 
Fecha de Ingreso: agosto-2008
Mensajes: 16
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Cambio de valor de una variable y su resultado.

Muchas gracias, era eso, ahora funciona todo correctamente, ahora solo me quedaria la segunda cuestion que dije al principio, (en realidad, lo del "$img2")
cambia solo el fondo, pero mi idea (empezando por ahi) es cambiar todo el tema (solo son unas 5 imagenes, (cabecera, fondo, y 3 imagenes mas)
Ahora bien, cada usuario llega, y elije un Estilo, pero mi intencion es que cuando el usuario vuelva a visitar la pagina, se quede el tema que elijio, (supongo que tendria que usar sesiones) pero no sabria como hacerlo exactamente, me podeis echar una mano con eso?

PD: me acabo de dar cuenta tambien de algo con lo que no contaba, si en el value del form, no tengo que especificar la variable, como hago que al mismo tiempo (al elegir "Estilo 1", me cambie otras 5 Variables?
  #7 (permalink)  
Antiguo 17/08/2008, 11:01
 
Fecha de Ingreso: agosto-2008
Mensajes: 16
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Cambio de valor de una variable y su resultado.

vale, he solucionado lo de las imagenes con:

Código PHP:
<?php
switch ($_POST["temas"]) {
case 
tema1$img1="sdd.png";
            
$img2="bground.jpg"; break;
case 
tema2$img1="sdd2.png";
            
$img2="bground2.jpg"; break;
case 
tema3$img1="sdd3.png";
            
$img2="bground3.jpg"; break;
default:    
$img1="sdd.png";
            
$img2="bground.jpg"; break;

}
?>
me funciona perfecto, el unico problema es, que la pagina tiene una serie de links (que cambian un include por otro de una seccion central), y cada vez que hago clic en un enlace (aunque en ningun momento el navegador cambia a cargar otro fichero php) el estilo vuelve a ser el default, si actualizo pulsando F5, no hay problema, "o si" (me sale la tipica alerta de que se necesitan reenviar datos para actualizar la pagina, si pulso en reenviar se actualiza sin cambiar de estilo, aunque creo que con cookies o sesiones no pasaria, solo que, no estoy nada puesto en cookies y sesiones)
A ver si alguien puede ayudarme en esto en especifico
  #8 (permalink)  
Antiguo 17/08/2008, 17:21
 
Fecha de Ingreso: agosto-2008
Mensajes: 16
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Cambio de valor de una variable y su resultado.

estoy intentando crear una sesion asi:

Código PHP:
<?php
session_cache_limiter
('nocache,private');
session_start(); 
$_SESSION['estilo'] = $_POST['temas'];
?>
Pero no se como hacer que la sesion funcione, porque hago clic en cualquier enlace, y, sin nisiquiera cambiar de archivo (estando siempre en index.php) al dar clic a cualquier enlace me cambia al estilo default
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:20.