Borrar productos de sesiones

He programado un carrito de compras y lo que quiero es que en el carrito se puedan volver a borrar los productos que se seleccionen con un checkbox.
Podeis ver el programa en http://www.mis-edesign.com/redesmadrid/php/componentes.php?fam=cajas
Y quiero saber como se borra un objeto especifico de una sesión.
Aquí va el script del carrito:
-------------------------------
<?
session_start();
session_register('itemsEnCesta');
if ($descripcion&&$familia1&&$pesetas&&$euros1&&$codigo1){
if (!isset($itemsEnCesta)){
$itemsEnCesta[$descripcion][1]=$cantidad;
$itemsEnCesta[$descripcion][2]=$pesetas;
$itemsEnCesta[$descripcion][8]=$familia1;
$itemsEnCesta[$descripcion][5]=$euros1;
$itemsEnCesta[$descripcion][7]=$codigo1;
}else{
foreach($itemsEnCesta as $k => $v){
if ($descripcion==$k){
$itemsEnCesta[$k][1]+=$cantidad;
$encontrado=1;
}
}
if (!$encontrado) {
$itemsEnCesta[$descripcion][1]=$cantidad;
$itemsEnCesta[$descripcion][2]=$pesetas;
$itemsEnCesta[$descripcion][8]=$familia1;
$itemsEnCesta[$descripcion][5]=$euros1;
$itemsEnCesta[$descripcion][7]=$codigo1;
}
}
}
?>
<?
if (isset($itemsEnCesta)){
BLA BLA
foreach($itemsEnCesta as $k => $v){
BLA BLA
}
}
?>
-------------------------------------------

1 respuesta

Respuesta
1
Lo que quieres hacer es bastante fácil pero no muy fácil de explicar. Lamentablemente yo tengo hecho un script pero en base a cookies y no en sesiones.
Lo que tienes que hacer es al mostrar los productos del carrito (que creo que lo haces con un WHILE) por cada producto tienes que agregar un <INPUT> de HTML para que puedas diferenciar por producto cada checkbox. Ej:
**********************
/// ACA VAN LOS DATOS CADA PRODUCTO
<input type=checkbox name=\"posi$elem\" value=\"\">
*********************
Con ese fragmento de código HTML en el WHILE del script PHP para mostrar los productos vas a tener las checkbox bien diferenciados por producto donde cada una de estas tiene el nombre "posi" + la posición del elemento en el ARRAY donde las guardas (en tu caso itemsEnCesta).
Cuando llames al script para borrar los productos seleccionados (ej: borrarelem.php) solamente vas a tener que recorrer el ARRAY y preguntar si la variable con el nombre la "posi" + la posición del ARRAY que estas examinando es TRUE o FALSE. Si es TRUE lo sacas del ARRAY y si es FALSE seguis con el siguiente elemento.
Tambien lo que tenes que agregar es en el script que muestra los productos es un <FORM> de HTML para que los checkbox y un boton "BORRAR SELECIONADOS" correspondan al script "borrarelem.php". Ej: <FORM NAME=\"borrarprodu\" ACTION=\"/borrarelem.php\" METHOD=\"POST\">.
Espero que te sirva y cualquier consulta que tengas no dudes en preguntarme.
"Consejo personal": no te conviene utilizar checkbox para borrar de una cesta, por lo general se utiliza un icono o botón por cada producto. Esto facilita la ACTUALIZACIÓN de datos del producto (cantidad, cant. cuotas, etc.).
Nahuelon..
Muchas gracias,
de momento lo echo con un botón que borre todo lo que hay en la sesión y borra todo el carrito.
En cuanto tenga tiempo haré lo del producto único, ya que seria más cómodo.
Muchas gracias de nuevo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas