Mostrar preferencias guardadas en variable sesión
Tengo un problema que no logro resolver. Me explico: tengo un carrito de compra realizado con php/mysql para seleccionar productos, en este caso camisetas.
Cada comprador puede personalizar su camiseta con un nombre, con un color, etc.
Toda la personalización la hago a través de un formulario que rellena el comprador, y las preferencias elegidas las meto en variable de sesión. Luego muestro el producto elegido con la personalización cuando se muestra el contenido del carrito.
Todo me funciona bien cuando cada comprador elige un solo producto, porque si elige más de uno, al mostrar el contenido del carrito con todos los productos, y cada uno con su personalización, me muestra la personalización del último en todos, es como si la última personalización es la que queda.
Supongo que la cuestión es asociar cada personalización con el producto elegido, pero éso es lo que no logro.
Si alguien puede echarme una mano, se lo agradezco mucho. Estoy completamente atascado.
Pongo los trozos de código que creo necesario para la explicación:
En la página que guarda la personalización:
[php]
session_start();
if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];else $carro=false;
$carro[md5($id)]=array('identificador'=>md5($id),'personalizar'=>$personalizar);
$_SESSION['personalizar] = $_POST['personalizar'];
[/php]
<form id="personalizar_dibujo" class="form" accept-charset="UNKNOWN" enctype="application/x-www-form-urlencoded" method="post">En un formulario hay un input para personalizar:
<form action="" method="post" name="personalizar_dibujo" class="form" id="personalizar_dibujo">
<input name="personalizar" type="text" id="personalizar" size="50" />
<input type="submit" name="boton_personalizar" id="boton_personalizar" value="Personalizar" />
En la pagina que muestra los productos del carro:
[php]
session_start();
if(isset($_SESSION["carro"]))
$carro=$_SESSION["carro"];else $carro=false;
$personalizar=$_SESSION['personalizar'];
echo $personalizar;
[/php]
Guardar la personalización lo hace bien, pero a la hora de mostrarla es donde hay problemas.
Me muestra bien la personalización si solo hay una id, es decir, un producto.
Pero si hay varios productos me muestra en todos los productos la misma personalización, la que haya puesto para el último producto que haya metido en el carro.
Si alguien me puede ayudar a mostrar correctamente
Cada comprador puede personalizar su camiseta con un nombre, con un color, etc.
Toda la personalización la hago a través de un formulario que rellena el comprador, y las preferencias elegidas las meto en variable de sesión. Luego muestro el producto elegido con la personalización cuando se muestra el contenido del carrito.
Todo me funciona bien cuando cada comprador elige un solo producto, porque si elige más de uno, al mostrar el contenido del carrito con todos los productos, y cada uno con su personalización, me muestra la personalización del último en todos, es como si la última personalización es la que queda.
Supongo que la cuestión es asociar cada personalización con el producto elegido, pero éso es lo que no logro.
Si alguien puede echarme una mano, se lo agradezco mucho. Estoy completamente atascado.
Pongo los trozos de código que creo necesario para la explicación:
En la página que guarda la personalización:
[php]
session_start();
if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];else $carro=false;
$carro[md5($id)]=array('identificador'=>md5($id),'personalizar'=>$personalizar);
$_SESSION['personalizar] = $_POST['personalizar'];
[/php]
<form id="personalizar_dibujo" class="form" accept-charset="UNKNOWN" enctype="application/x-www-form-urlencoded" method="post">En un formulario hay un input para personalizar:
<form action="" method="post" name="personalizar_dibujo" class="form" id="personalizar_dibujo">
<input name="personalizar" type="text" id="personalizar" size="50" />
<input type="submit" name="boton_personalizar" id="boton_personalizar" value="Personalizar" />
En la pagina que muestra los productos del carro:
[php]
session_start();
if(isset($_SESSION["carro"]))
$carro=$_SESSION["carro"];else $carro=false;
$personalizar=$_SESSION['personalizar'];
echo $personalizar;
[/php]
Guardar la personalización lo hace bien, pero a la hora de mostrarla es donde hay problemas.
Me muestra bien la personalización si solo hay una id, es decir, un producto.
Pero si hay varios productos me muestra en todos los productos la misma personalización, la que haya puesto para el último producto que haya metido en el carro.
Si alguien me puede ayudar a mostrar correctamente
1 respuesta
Respuesta de yerkoch
1