Foros del Web » Programando para Internet » PHP »

PHP OO APORTE: Carrito de la compra para PHP5

Estas en el tema de APORTE: Carrito de la compra para PHP5 en el foro de PHP en Foros del Web. Hola, quiero compartir con vosotros un carrito de la compra que he realizado. Los requisitos mínimos para que funcione son PHP5. Podéis usarlo y editarlo ...
  #1 (permalink)  
Antiguo 22/05/2009, 12:45
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
APORTE: Carrito de la compra para PHP5

Hola,

quiero compartir con vosotros un carrito de la compra que he realizado.

Los requisitos mínimos para que funcione son PHP5.

Podéis usarlo y editarlo a vuestro gusto.

Cualquier duda o sugerencia estoy a vuestra disposición.

Saludos!

Articulos.class.php

Clase que representa un artículo.

Código PHP:
<?php

interface iArticulos
{
    public function 
getIdArticulo();
    public function 
getPrecioArticulo();
}

class 
Articulos implements iArticulos
{
    private 
$id_articulo;
    private 
$precio_articulo;
    
    public function 
__construct()
    {
    }
    
    public function 
setIdArticulo($id_articulo)
    {
        
$this->id_articulo $id_articulo;
    }
    
    public function 
getIdArticulo()
    {
        return 
$this->id_articulo;
    }
    
    public function 
setPrecioArticulo($precio_articulo)
    {
        
$this->precio_articulo $precio_articulo;
    }
    
    public function 
getPrecioArticulo()
    {
        return 
$this->precio_articulo;
    }
}
ColeccionArticulos.class.php

Clase que representa al carrito que almacenará los artículos.

Implementa el patrón singleton así que para instanciarla hay que usar el método estático getCarrito().

Código PHP:
<?php

class ColeccionArticulos
{
    private static 
$carrito;
    private 
$coleccion_articulos = array();
    
    private function 
__construct()
    {
        
// Prevenimos que se pueda instanciar esta clase
    
}
    
    public function 
__clone()
    {
        
trigger_error('Clonacion no permitida para esta clase.'E_USER_ERROR);
    }
        
    public static function &
getCarrito()
    {
        if (!isset(
self::$carrito)) {
        
        
$c __CLASS__;
        
        
self::$carrito = new $c;
        
        }
        
        return 
self::$carrito;        
    }

    public function 
addArticulo(Articulos $articulo)
    {
        
$id_articulo $articulo->getIdArticulo();
        
        if(
$id_articulo)
            
$this->coleccion_articulos[$id_articulo] = $articulo;
    }
    
    public function 
removeArticulo(Articulos $articulo)
    {
        
$id_articulo $articulo->getIdArticulo();
        
        if(
$id_articulo && array_key_exists($id_articulo$this->coleccion_articulos))
            unset(
$this->coleccion_articulos[$id_articulo]);
    }
    
    public function 
getCantidadArticulos()
    {
        return 
count($this->coleccion_articulos);
    }
    
    public function 
getPrecioTotal()
    {
        
$precio_total 0;
        
        foreach(
$this->coleccion_articulos as $articulo)
            
$precio_total += $articulo->getPrecioArticulo();
            
        return 
$precio_total;
    }
    
    public function 
vaciarCarrito()
    {
        
$this->coleccion_articulos = array();
    }
}
Y por último un script para probarlo

index.php

Código PHP:
<?php

require_once "Articulos.class.php";
require_once 
"ColeccionArticulos.class.php";

/* EJEMPLO A: AGREGAMOS 2 ARTICULOS */
echo "<pre>EJEMPLO A: AGREGAMOS 2 ARTICULOS\n";

// Creamos el carrito
$carrito ColeccionArticulos::getCarrito();

// Creamos el 'Articulo 1'
$art1 = new Articulos();
$art1->setIdArticulo("001");
$art1->setPrecioArticulo(45.60);

// Agregamos el 'Articulo 1' al carrito
$carrito->addArticulo($art1);

// Creamos el 'Articulo 2'
$art2 = new Articulos();
$art2->setIdArticulo("005");
$art2->setPrecioArticulo(5.40);

// Agregamos el 'Articulo 2' al carrito
$carrito->addArticulo($art2);

// Mostramos la cantidad de articulos y el precio total tras agregar los dos articulos.
echo "\nCANTIDAD ARTICULOS: ".$carrito->getCantidadArticulos();
echo 
"\nPRECIO TOTAL: ".$carrito->getPrecioTotal();
echo 
"</pre>";

/* EJEMPLO B: ELIMINAMOS 1 ARTICULO */
echo "<pre>EJEMPLO B: ELIMINAMOS 1 ARTICULO \n";

// Eliminamos el 'Articulo 1'
$carrito->removeArticulo($art1);

// Mostramos la cantidad de articulos y el precio total tras eliminar un articulo.
echo "\nCANTIDAD ARTICULOS: ".$carrito->getCantidadArticulos();
echo 
"\nPRECIO TOTAL: ".$carrito->getPrecioTotal();
echo 
"</pre>";

// Vaciamos el carrito
$carrito->vaciarCarrito();

/* EJEMPLO C: VACIAMOS EL CARRITO */
echo "<pre>EJEMPLO C: VACIAMOS EL CARRITO\n";

// Mostramos la cantidad de articulos y precio total tras vaciar el carrito.
echo "\nCANTIDAD ARTICULOS: ".$carrito->getCantidadArticulos();
echo 
"\nPRECIO TOTAL: ".$carrito->getPrecioTotal();

echo 
"\n\nFIN DEL SCRIPT";
echo 
"</pre>";
  #2 (permalink)  
Antiguo 22/05/2009, 15:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: APORTE: Carrito de la compra para PHP5

Bien como ejemplo faltaría que le agregaras como persistirlo entre paginas o en su caso almacenarlo en la BDD.

Saludos
  #3 (permalink)  
Antiguo 22/05/2009, 15:57
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
De acuerdo Respuesta: APORTE: Carrito de la compra para PHP5

Cita:
Iniciado por GatorV Ver Mensaje
Bien como ejemplo faltaría que le agregaras como persistirlo entre paginas o en su caso almacenarlo en la BDD.

Saludos
Gracias por la sugerencia.

No he agregado nada mas por las siguientes razones:

- No considero que sea cometido de las clases del carrito la persistencia entre paginas. Ya que el cometido de estas clases son por un lado representar al Articulo y la otra contener Articulos. Ademas creo que proponer un sistema de persistencia a parte de dar un cometido que no pertenece a estas clases limitaría su uso e integración en un modelo diferente.

- En cuanto a almacenar el carrito en la BBDD opino lo mismo. Estas clases no estan hechas para comunicarse con una BBDD. Y si así lo hiciera estaría limitando la funcionalidad de clase a un tipo de BBDD concreto o no podría integrarse con la lógica de negocio de algún proyecto en particular.

Si tenéis alguna duda o sugerencia más estoy a vuestra disposición.

Saludos!
  #4 (permalink)  
Antiguo 11/11/2009, 06:57
 
Fecha de Ingreso: agosto-2008
Ubicación: España
Mensajes: 3
Antigüedad: 15 años, 8 meses
Puntos: 0
De acuerdo Respuesta: APORTE: Carrito de la compra para PHP5

Excelente , excelente , esto si es un codigo Orientado a objetos..!, con todas la de la LEY , y con un buen patron de diseño. Creo que lo tomare prestado jaja .Muy buena aportación.
  #5 (permalink)  
Antiguo 11/11/2009, 12:42
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: APORTE: Carrito de la compra para PHP5

Esta clase se comunica con alguna base de datos para obtener los articulos y sus precios?
__________________
Quitenme la vida pero no la bebida.
  #6 (permalink)  
Antiguo 11/11/2009, 23:12
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años
Puntos: 60
Respuesta: APORTE: Carrito de la compra para PHP5

Hola bieen, buen aporte pero un par de preguntas.

La interface iArticulo no tiene ninguna funcionalidad en tu ejemplo ya que ni si quiera la usas para comunicarte a través de ella al objeto articulo que la implementa.

¿Esta pensado para tener distintos tipos de objetos y que el carrito los maneje como si fueran un iArticulo?

En ese caso deberías de trabajar con iArticulo dentro de la clase ColeecionArticulos.

__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #7 (permalink)  
Antiguo 12/11/2009, 07:45
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 14 años, 6 meses
Puntos: 6
Respuesta: APORTE: Carrito de la compra para PHP5

Cita:
La interface iArticulo no tiene ninguna funcionalidad en tu ejemplo ya que ni si quiera la usas para comunicarte a través de ella al objeto articulo que la implementa.
Me podrian explicar un poquito esto, yo creia que la interface era solamente para tener un orden en las clases que la implementaran.
  #8 (permalink)  
Antiguo 12/11/2009, 13:22
 
Fecha de Ingreso: agosto-2008
Ubicación: España
Mensajes: 3
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: APORTE: Carrito de la compra para PHP5

Cita:
Iniciado por cesarpunk Ver Mensaje
Esta clase se comunica con alguna base de datos para obtener los articulos y sus precios?
No , lo que hace es crear objetos articulos y luego agregarlos a una coleccion de articulos que tambien es una clase , ademas utiliza para la colección un patron de diseño single town. que no permite clonar el objeto.
  #9 (permalink)  
Antiguo 16/11/2009, 14:42
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 14 años, 6 meses
Puntos: 6
Respuesta: APORTE: Carrito de la compra para PHP5

Hola, perdón pero sigo sin entender algo.
Las interfaces son clases para que otras clases las implementen y asi tener un orden, digamos, forzar a la clase a tener ciertos metodos.
No entiendo como, "la clase que la implementa se comunica con la interface", como dice _ssx.
Si me pueden aclarar un poquito esto se los agradezco.
  #10 (permalink)  
Antiguo 16/11/2009, 15:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: APORTE: Carrito de la compra para PHP5

Hay un muy buen post sobre interfaces en el foro, si usas el buscador lo puedes encontrar.

Saludos.
  #11 (permalink)  
Antiguo 18/11/2009, 07:18
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años
Puntos: 60
De acuerdo Respuesta: APORTE: Carrito de la compra para PHP5

Hola principianteZF :) a lo que me refiero yo con respecto a las interfaces es que mas que un orden en tu código te ayudan a establecer un contrato de implementación, para que puedas olvidar en tus clases con que tipo de objetos estas tratando y llamarlos a través de su interface asegurando que que tendrás polimorfismo por parte del lenguaje llamando al método correcto de cada objeto que use la interface.

En el código presentado la interfaz no se esta explotando ya que si quieres usar los beneficios de la interfaz necesitas tratar directamente con ella y no con los objetos que la implementan.

Interface Articulo

Código PHP:
interface Articulo {
    public function 
setIdArticulo();
    public function 
setPrecioArticulo();
    public function 
getIdArticulo();
    public function 
getPrecioArticulo();

El objetivo es crear un Objeto que implementa la interfaz Articulo por que se puede tratar como un articulo, pero que no es lo mismo vender electrodomesticos que vender mmm por ejemplo Carne.. ya que tienen metodos distinto de cobrarse pero siguen siendo articulos.

En este ejemplo suponemos que en los electrodomesticos el costo se debe multiplicar por 1.15 por que es el precio mas los impuestos y que en las cosas como carne esto no sucede.. es ahi donde las interfaces son un gran invento.

Objeto Electrodomestico

Código PHP:
class Electrodomestico implements Articulo
{
    private 
$id_articulo;
    private 
$precio_articulo;
    
    public function 
__construct()
    {
    }
    
    public function 
setIdArticulo($id_articulo)
    {
        
$this->id_articulo $id_articulo;
    }
    
    public function 
getIdArticulo()
    {
        return 
$this->id_articulo;
    }
    
    public function 
setPrecioArticulo($precio_articulo)
    {
        
$this->precio_articulo $precio_articulo;
    }
    
    public function 
getPrecioArticulo()
    {
        return 
$this->precio_articulo 1.15;
    }

En el caso de un objeto de tipo Carne, su metodo getPrecioArticulo no multiplica el precio y se mantiene igual.. ahora sigue la magia en la clase del carro de compras, tratar a todos los tipos de objeto como un Articulo y no como un Objeto Electrodomestico o Carne.. o cualquiera, pero teniendo la certeza de que cada objeto Articulo sabra como calcularse segun su tipo de objeto.

Objeto Carne

Código PHP:
class Carne implements Articulo
{
    private 
$id_articulo;
    private 
$precio_articulo;
    
    public function 
__construct()
    {
    }
    
    public function 
setIdArticulo($id_articulo)
    {
        
$this->id_articulo $id_articulo;
    }
    
    public function 
getIdArticulo()
    {
        return 
$this->id_articulo;
    }
    
    public function 
setPrecioArticulo($precio_articulo)
    {
        
$this->precio_articulo $precio_articulo;
    }
    
    public function 
getPrecioArticulo()
    {
        return 
$this->precio_articulo;
    }

En realidad lo unico que cambia es el metodo.. addArticulo.

Código PHP:
// Ahora el parametro es un Articulo, y como un electrodomestico es un Articulo y un Objeto Carne tambien se comporta como tal por que implementan la interface articulo.

public function addArticulo(Articulo $articulo)
    {
        
$id_articulo $articulo->getIdArticulo();
        
        if(
$id_articulo)
            
$this->coleccion_articulos[$id_articulo] = $articulo;
    } 
Ahora el ejemplo quedaria asi.

Código PHP:
// Creamos el carrito
$carrito ColeccionArticulos::getCarrito();

// Creamos el 'Articulo 1'
$art1 = new Electrodomestico();
$art1->setIdArticulo("001");
$art1->setPrecioArticulo(45.60);

// Agregamos el 'Articulo 1' al carrito
$carrito->addArticulo($art1);

// Creamos el 'Articulo 2'
$art2 = new Carne();
$art2->setIdArticulo("005");
$art2->setPrecioArticulo(5.40);

// Agregamos el 'Articulo 2' al carrito
$carrito->addArticulo($art2); 
Con esto aseguras que puedes tener reglas muy especiales para cada tipo de articulo y sin comprometer la funcionalidad de tu Carro de compras, por que el solo hablaria con articulos y no con implementaciones concretas.

__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador

Última edición por _ssx; 18/11/2009 a las 09:17 Razón: Update
  #12 (permalink)  
Antiguo 31/12/2009, 07:12
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: APORTE: Carrito de la compra para PHP5

Hola

Tengo una duda con respecto al ejemplo, esto debido a que estuve haciendo una interface y cuando implemente los metodos en la clases estos reciben parametros como en el caso de los setters y cuando probé estos metodos me arrojaba un error de que no eran compatibles con los metodos de la interfaz y era por el hecho de que en la definicion de los metodos de la interfaz no inclui argumentos en los setters. Mirando en el ejemplo la interfaz define metodos sin argumentos y la implementacion si recibe argumentos, eso es un error.

Saludos

Espero se entienda
  #13 (permalink)  
Antiguo 31/12/2009, 11:35
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años
Puntos: 60
Respuesta: APORTE: Carrito de la compra para PHP5



De hecho si, fue una omisión mia sin querer ,si quieres forzar la entrada de N parametros definelos en la interface, ya que es el contrato de implementación, ¿Quieres usar esta interface? enviame estos parametros
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #14 (permalink)  
Antiguo 31/12/2009, 14:35
Avatar de Esck21  
Fecha de Ingreso: septiembre-2009
Mensajes: 50
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: APORTE: Carrito de la compra para PHP5

Te tengo que felicitar, tu codigo se ve excelente. Otra cosa:

En singleton: cambia el public por private en __clone();

private function __clone() { };

Última edición por Esck21; 31/12/2009 a las 14:41 Razón: patrocinado por: Singleton
  #15 (permalink)  
Antiguo 11/03/2010, 16:56
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: APORTE: Carrito de la compra para PHP5

Me alegra saber que a alguien le haya podido servir de ayuda para crear su propio carrito de la compra.

Como es obvio este aporte no pretendía ser una solución definitiva para crear un sistema de carrito de la compra, el aporte lo cree con la idea de servir de punto inicial para alguien que quisiera comenzar a desarrollar el suyo propio, tomando de partida el aporte.

Bueno como dije en anteriores mensajes, si alguien necesita ayuda para implementar el suyo, o desea realizar alguna sugerencia, quedo a su disposición.

Saludos!
  #16 (permalink)  
Antiguo 12/03/2010, 10:56
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: APORTE: Carrito de la compra para PHP5

Cita:
Iniciado por Synkronice Ver Mensaje
Me alegra saber que a alguien le haya podido servir de ayuda para crear su propio carrito de la compra.

Como es obvio este aporte no pretendía ser una solución definitiva para crear un sistema de carrito de la compra, el aporte lo cree con la idea de servir de punto inicial para alguien que quisiera comenzar a desarrollar el suyo propio, tomando de partida el aporte.

Bueno como dije en anteriores mensajes, si alguien necesita ayuda para implementar el suyo, o desea realizar alguna sugerencia, quedo a su disposición.

Saludos!
Hola,

Y si tuvieras que persistir esto entre página y página, como lo implementarías?
Me interesa tu opinion, sin código, sólo para captar la idea :D


Gracias
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #17 (permalink)  
Antiguo 12/03/2010, 13:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: APORTE: Carrito de la compra para PHP5

Depende de la finalidad, puedes hacerlo guardando todo el carrito en un objeto de sesión, o puedes tener una tabla de una BDD temporal que vaya guardando la información.

Saludos.
  #18 (permalink)  
Antiguo 12/03/2010, 19:45
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 14 años, 6 meses
Puntos: 6
Respuesta: APORTE: Carrito de la compra para PHP5

Hola como es esto de una "base de datos temporal", alguien me lo puede explicar.
Se pueden crear bases temporales?

Saludos.
  #19 (permalink)  
Antiguo 12/03/2010, 22:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: APORTE: Carrito de la compra para PHP5

Me refiero a una base de datos que uses de forma temporal, que constantemente vayas vaciando en base a x fecha.

Saludos.
  #20 (permalink)  
Antiguo 15/03/2010, 18:23
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: APORTE: Carrito de la compra para PHP5

Cita:
Iniciado por Fridureiks Ver Mensaje
Hola,

Y si tuvieras que persistir esto entre página y página, como lo implementarías?
Me interesa tu opinion, sin código, sólo para captar la idea :D


Gracias

Depende del contexto, proyecto o necesidades. Pero te comento algunas de las herramientas mas comunes en estos casos.

- Usando sesiones.
- Usando bbdd.
- Serializando objetos.

saludos
  #21 (permalink)  
Antiguo 07/05/2010, 14:29
 
Fecha de Ingreso: abril-2010
Mensajes: 50
Antigüedad: 14 años
Puntos: 0
Respuesta: APORTE: Carrito de la compra para PHP5

Hola buen aporte pero me aparece
EJEMPLO A: AGREGAMOS 2 ARTICULOS
Fatal error:Class 'Articulos' not found in c:\wamp\www\SuperCentro\domicilios.php on line 13


c:\wamp\www\SuperCentro\domicilios.php SERVIDOR REMOTOLOCAL

ojala me puedan ayudar gracias de ante mano
  #22 (permalink)  
Antiguo 13/05/2010, 13:06
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: APORTE: Carrito de la compra para PHP5

Cita:
Iniciado por DiegoRivera2010 Ver Mensaje
Hola buen aporte pero me aparece
EJEMPLO A: AGREGAMOS 2 ARTICULOS
Fatal error:Class 'Articulos' not found in c:\wamp\www\SuperCentro\domicilios.php on line 13


c:\wamp\www\SuperCentro\domicilios.php SERVIDOR REMOTOLOCAL

ojala me puedan ayudar gracias de ante mano
Estás haciendo require de las clases antes de usarlas?

Saludos!
  #23 (permalink)  
Antiguo 19/05/2010, 15:25
 
Fecha de Ingreso: abril-2010
Mensajes: 50
Antigüedad: 14 años
Puntos: 0
Respuesta: APORTE: Carrito de la compra para PHP5

Cita:
Iniciado por Synkronice Ver Mensaje
Estás haciendo require de las clases antes de usarlas?

Saludos!
Perdon pero como las Cito gracias por la ayuda

MP la rtespuesta por favor
  #24 (permalink)  
Antiguo 13/10/2010, 08:47
 
Fecha de Ingreso: octubre-2010
Mensajes: 9
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: APORTE: Carrito de la compra para PHP5

Hola,

En primer lugar agradecer el aporte, llevo bastates dias implementando un carrito de la compra y al ser principiante en php me resulta complicado realizar un carrito en condiciones. Creo que este sera la base de mi carrito al 99%.

Mi intencion es realizar un carro consultando los productos en una BD, aqui adjunto el codigo con el que enlazo mi BD con la web imprimiendo por pantalla un listado de productos.

Código PHP:
function llistarcategoria1(){ //categoria1=pernils
    
bdproductes();

$sql "SELECT * FROM productes WHERE categoria = 'Pernils'"
$resultado mysql_query($sql);
while(
$row mysql_fetch_row($resultado)){
        
$row[0];
        
$row[1]; 
        
$row[2]; 
        
$row[3]; 
        
$row[4]; 
        
echo
'<table width="600" border="1">
          <tr>
            <td width="250" rowspan="5">&nbsp;</td>
            <td width="350">'
.$row[1].'</td>
          </tr>
          <tr>
            <td>Stock:'
.$row[4].'</td>
          </tr>
          <tr>
            <td>Preu: '
.$row[3].'Euros</td>
          </tr>
          <tr>
            <td> <form action="carrocompra.php" method="post">
        <input name="quantitat" type="text" value="1" size="6" maxlength="3" />
        <input name="id" type="hidden" value="'
.$row[0].'"" />
        <input name="nom" type="hidden" value="'
.$row[1].'"" />
        <input name="preu" type="hidden" value="'
.$row[3].'"" />
        <input name="stock" type="hidden" value="'
.$row[4].'"" /><input value="Afegir al carret" type="submit" /></form></td>
          </tr>
        </table>'
;

Mi intencion es obtener los campos id, nombre, precio y stock mediante el metodo POST:

Código PHP:
<?php
require_once("shoppingcart.php");
session_start();

    
//$nom = consultarnom();
    
$id $_POST["id"];
    
$nom $_POST["nom"];
    
$preu $_POST["preu"];
    
$stock $_POST["stock"];
    
$quantitat $_POST["quantitat"];
    
$contador=0;
    
//if(!isset($_SESSION['cart']) || !is_object($_SESSION['cart'])) {
        
$_SESSION['cart'] = new shoppingcart();
        while(
$contador<$quantitat && $stock!=0){
        
$_SESSION['cart']->additem($id$nom$preu);
        
$contador=$contador+1;
        
$stock=$stock-1;
         
        }        
        
$items $_SESSION['cart']->getCart();
        echo 
$_SESSION['cart']->getCart();


    
//}
?>
Esto lo implementé antes de ver este carrito mi intencion es adaptarlo. Por donde deberia empezar?

Muchas gracias!
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

SíEste tema le ha gustado a 4 personas




La zona horaria es GMT -6. Ahora son las 11:14.