Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Diseño web | Promoción web | Ganar dinero
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Mostrar el carrito PHP


Función para mostrar los productos almacenados en el carrito de la compra, en PHP.


01/10/04 - La última función de las que vamos a ver aquí sirve para mostrar todos los productos del carrito. Tiene que hacer un simple bucle que recorra los arrays de productos, que se han ido rellenando al meter productos en el carrito. Debe mostrar los datos de cada producto según se recorre con el bucle. Además, debe proporcionar el importe total de la compra y un enlace para quitar cualquier producto del carrito.

function imprime_carrito(){
    $suma = 0;
    echo '<table border=1 cellpadding="3">
    <tr>
    <td><b>Nombre producto</b></td>
    <td><b>Precio</b></td>
    <td> </td>
    </tr>';
    for ($i=0;$i<$this->num_productos;$i++){
       if($this->array_id_prod[$i]!=0){
          echo '<tr>';
          echo "<td>" . $this->array_nombre_prod[$i] . "</td>";
          echo "<td>" . $this->array_precio_prod[$i] . "</td>";
          echo "<td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>";
          echo '</tr>';
          $suma += $this->array_precio_prod[$i];
       }
    }
    //muestro el total
    echo "<tr><td><b>TOTAL:</b></td><td> <b>$suma</b></td><td> </td></tr>";
    //total más IVA
    echo "<tr><td><b>IVA (16%):</b></td><td> <b>" . $suma * 1.16 . "</b></td><td> </td></tr>";
    echo "</table>";
}


La función declara primero la variable suma donde se guardará la suma de importes de los productos.

Se muestran todos los productos con un bucle que recorre las líneas del carrito, desde la primera hasta el número de productos. En cada línea del carrito se muestran sus datos, teniendo cuidado porque si el identificador del producto era cero quería decir que ese producto había sido borrado del carrito. Además, acumulamos en la variable suma el importe de todos los productos del carrito que no han sido borrados previamente.

Todavía dentro del bucle que recorre los productos del carrito, colocamos un enlace para que el visitante pueda eliminar un producto. Hay que darse cuenta que el enlace para borrar un producto indica como parámetro la línea del carrito que se debe borrar, que era lo que nosotros necesitábamos en la función creada para borrar los productos.

Ya fuera del bucle, imprimimos el importe total con la suma de los importes de los productos que hemos ido acumulando durante el bucle.

Código completo de la clase

Veamos a continuación cómo quedaría la clase carrito completa, para que no se nos pase ningún detalle.

class carrito {
    //atributos de la clase
    var $num_productos;
    var $array_id_prod;
    var $array_nombre_prod;
    var $array_precio_prod;

    //constructor. Realiza las tareas de inicializar los objetos cuando se instancian
    //inicializa el numero de productos a 0
    function carrito () {
       $this->num_productos=0;
    }

    //Introduce un producto en el carrito. Recibe los datos del producto
    //Se encarga de introducir los datos en los arrays del objeto carrito
    //luego aumenta en 1 el numero de productos
    function introduce_producto($id_prod,$nombre_prod,$precio_prod){
       $this->array_id_prod[$this->num_productos]=$id_prod;
       $this->array_nombre_prod[$this->num_productos]=$nombre_prod;
       $this->array_precio_prod[$this->num_productos]=$precio_prod;
       $this->num_productos++;
    }

    //Muestra el contenido del carrito de la compra
    //ademas pone los enlaces para eliminar un producto del carrito
    function imprime_carrito(){
       $suma = 0;
       echo '<table border=1 cellpadding="3">
       <tr>
       <td><b>Nombre producto</b></td>
       <td><b>Precio</b></td>
       <td> </td>
       </tr>';
       for ($i=0;$i<$this->num_productos;$i++){
          if($this->array_id_prod[$i]!=0){
             echo '<tr>';
             echo "<td>" . $this->array_nombre_prod[$i] . "</td>";
             echo "<td>" . $this->array_precio_prod[$i] . "</td>";
             echo "<td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>";
             echo '</tr>';
             $suma += $this->array_precio_prod[$i];
          }
       }
       //muestro el total
       echo "<tr><td><b>TOTAL:</b></td><td> <b>$suma</b></td><td> </td></tr>";
       //total más IVA
       echo "<tr><td><b>IVA (16%):</b></td><td> <b>" . $suma * 1.16 . "</b></td><td> </td></tr>";
       echo "</table>";
    }

    //elimina un producto del carrito. recibe la linea del carrito que debe eliminar
    //no lo elimina realmente, simplemente pone a cero el id, para saber que esta en estado retirado
    function elimina_producto($linea){
       $this->array_id_prod[$linea]=0;
    }
}

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada
+ 1 comentario (Añadir)
+ 5 comentarios no revisados

 Autoría, licencia y acciones sobre este artículo

Informe de Miguel Angel Alvarez*
Director de DesarrolloWeb.com
URL: http://www.desarrolloweb.com

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Carrito de la compra en PHP

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Scripts en PHP


 Comentarios de los visitantes
Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar.
Se muestra un comentario revisado

 Comentario de Bruno Savron
18/10/06 
Donde se ingresa este código ??

if (!isset($_SESSION["ocarrito"])){
$_SESSION["ocarrito"] = new carrito();
}

No es en la librería ,después de la definición de clase,..??Donde precisamente ??

RESPUESTA

Obviamente, después de la definición de la clase, porque si no no te funcionará.
Como también utiliza sesiones, tendrás también que iniciar la sesión antes de poder ejecutar ese código.
Ahora bien, el codigo luego lo podrás poner donde lo necesites, siempre que sea antes de trabajar con el carrito y después de haber incluido el código de la clase y haber iniciado la sesión.

Añadir un comentario al artículo Añadir un comentario del artículo
 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se han encontrado 5 comentarios sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Carrito de la compra en PHP
Categorías
+Scripts en PHP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia