Foros del Web » Programando para Internet » PHP »

Crear arreglo de una variable de sesion dinamicamente

Estas en el tema de Crear arreglo de una variable de sesion dinamicamente en el foro de PHP en Foros del Web. Hola a todos. Estoy teniendo problemas para manejar arrays de sesion, son para un carrito de compras donde debo guardar el id del articulo y ...
  #1 (permalink)  
Antiguo 19/05/2011, 17:34
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Crear arreglo de una variable de sesion dinamicamente

Hola a todos.

Estoy teniendo problemas para manejar arrays de sesion, son para un carrito de compras donde debo guardar el id del articulo y la cantidad. Lo que tengo actualmente solo me permite tener 1 elemento en el disque array pero el array debe ir creciendo de tamaño dinamicamente(aumentar en 1 cada que el usuario de clic en el boton comprar y meter en ese elemento del array el nombre y cantidad).

Aqui el codigo que tengo

Código PHP:
Ver original
  1. <?php
  2. $cantidad=isset($_POST["cantidad"])?$_POST["cantidad"]:0;
  3. $ar_id=isset($_POST["ar_id"])?$_POST["ar_id"]:0;
  4. $logeado=isset($_COOKIE['EMail'])?$_COOKIE['EMail']:"";
  5. if($logeado=="")   
  6. {      
  7.     echo "Agregar a sesion carrito";
  8.     if(!isset($_SESSION['ar_id']))
  9.     {
  10.         $_SESSION['ar_id'][]=$ar_id;
  11.         $_SESSION['cantidad'][]=$_cantidad;
  12.     }
  13.     $_SESSION['ar_id'][]=$ar_id;
  14.     $_SESSION['cantidad'][]=$cantidad;
  15.    
  16.     echo $_SESSION['ar_id'][2];
  17.     echo $_SESSION['cantidad'][2];
  18. }
  19. else
  20.     If(isset($_SESSION['carrito']))
  21.     {
  22.        
  23.         echo "Agregar a sesion carrito";   
  24.        
  25.     }
  26.     else
  27.         echo "No  existe la sesion carrito";
  28. ?>

Gracias.
  #2 (permalink)  
Antiguo 19/05/2011, 20:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Crear arreglo de una variable de sesion dinamicamente

Lee este tema: http://www.forosdelweb.com/f18/probl...ativos-914225/

Saludos.
  #3 (permalink)  
Antiguo 20/05/2011, 11:39
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear arreglo de una variable de sesion dinamicamente

Muchas gracias por el link, funciona perfecto sin embargo, no es solo agregar al carrito, tambien eliminar y modificar un elemento, esto ultimo por que pueden darle a comprar dos veces al mismo articulo, entonces, en la sesion no debe haber 2 repetidos, sino sumarle la cantidad al elemento donde este ese articulo.

Vere como hacerlo a partir de lo que ya me pasaste, si para hoy no consigo nada, edito este post pidiendote ayuda. Gracias.
  #4 (permalink)  
Antiguo 20/05/2011, 13:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Crear arreglo de una variable de sesion dinamicamente

Lo que puedes hacer es en lugar de agregar directamente al array, asignes un elemento por clave por ejemplo:
Código PHP:
Ver original
  1. // Agregar o modificar
  2. $id = (int) $_POST['id'];
  3. if (!isset($_SESSION['carrito'][$id])) {
  4.         $_SESSION['carrito'][$id] = array(
  5.                // Los elementos
  6.         );
  7. } else {
  8.         $_SESSION['carrito'][$id]['cantidad'] += $new_cantidad; // solo aumentas la cantidad
  9. }
  10.  
  11. // Para borrar:
  12. unset($_SESSION['carrito'][$id]);

Saludos.
  #5 (permalink)  
Antiguo 10/06/2011, 11:04
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear arreglo de una variable de sesion dinamicamente

Cita:
Iniciado por GatorV Ver Mensaje
Lo que puedes hacer es en lugar de agregar directamente al array, asignes un elemento por clave por ejemplo:
Código PHP:
Ver original
  1. // Agregar o modificar
  2. $id = (int) $_POST['id'];
  3. if (!isset($_SESSION['carrito'][$id])) {
  4.         $_SESSION['carrito'][$id] = array(
  5.                // Los elementos
  6.         );
  7. } else {
  8.         $_SESSION['carrito'][$id]['cantidad'] += $new_cantidad; // solo aumentas la cantidad
  9. }
  10.  
  11. // Para borrar:
  12. unset($_SESSION['carrito'][$id]);

Saludos.
Mil disculpas que apenas este contestando.

He hecho esto ultimo para guardar el id y cantidad y parece funcionar, aun no lo pruebo bien, por desgracia hay muchas cosas que me faltan por hacer.

Muchas gracias por tu ayuda, aprendi algo muy importante gracias a ti.

Última edición por GatorV; 10/06/2011 a las 12:11
  #6 (permalink)  
Antiguo 10/06/2011, 17:54
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear arreglo de una variable de sesion dinamicamente

Cambie las cookies por sesiones pero falla de forma similar, de hecho en todas partes donde envio formularios falla (como en la parte del procesamiento del pedido donde pueden aumentar o disminuir la cantidad a coimprar de cierto articulo, esto que menciono no lo hace, de hecho no hace nada.
Tambien puse hasta arriba el session_start().
Si me dan una idea de como organizar ese asunte me ayudarian mucho pues eso es lo mas importante de la pagina.

Gracias y disculpen las molestias.
  #7 (permalink)  
Antiguo 10/06/2011, 19:29
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Crear arreglo de una variable de sesion dinamicamente

y por qué no usas el plugin jcart
te vas a ahorrar mucho trabajo y es algo que ya está muy probado además de que es muy configurable

http://conceptlogic.com/jcart/
  #8 (permalink)  
Antiguo 11/06/2011, 08:34
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear arreglo de una variable de sesion dinamicamente

Voy a checar muy rapidamente el plugin ese, sin embargo necesito mostrar en una ventana modal el carrito junto a otros datos como el subtotal, iva y total, ademas de dos botones, uno para cambiar la cantidad de articulos y otro para borrar el articulo, todo esto desde la ventana modal, ademas de que desde esa ventana modal se siguen ciertos pasos para procesar el pedido, un ejemplo de lo que necesito hacer lo pueden ver en esta pagina http://www.partyandfiesta.com/, pongan articulos en su carrito y sigan los pasos de procesar pedido, todo eso va en la ventana modal (ya ando viendo como hacerla con jquery ui).

Tambien si uso ese plugin, necesitaria ver como no mostrar los articulos cuando agregas, sino que solo te indique que se agrego con una ventana modal estilo la que tienen en la pagina que puse.

Algo mas, si uso ese plugin necesito meterle que vea si hay en stock la cantidad deseada, de no ser asi, no permitirle poner la cantidad y tambien que dependiendo de la cantidad de articulos, sea el precio al que cuesten (hay una tabla de precios para cada articulo con su cant inicial y final.

algunas de estas cosas ya las tengo pero no se que tan complicado seria modificar el plugin para que las haga y pues lo que menos tengo es tiempo aunque de cualquier manera estoy atorado y me quedan 4 dias para terminar la pagina.

Última edición por LOD_Fredy; 11/06/2011 a las 08:41

Etiquetas: dinamicamente, arreglos, variables
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 20:26.