Cistell: diferència entre les revisions

De Wiki personal d'en Guillem Serrat
Línia 49: Línia 49:


== Mostra de productes ==
== Mostra de productes ==
La mostra de productes és bàsicament una taula amb les següents columnes:


Per cada producte, es crearà una fila on
* Imatge
* Nom del producte
* Preu unitari
* Quantitat
* Subtotal
* Accions
 
Mitjançant un foreach, per cada producte es crearà una fila on es definiràn els aspectes abans comentats, a més de realitzar un càlcul de preu i descompte
 
=== Càlcul de totals, subtotals i descomptes ===
 
=== Gestió de l'stock ===
 
=== Mostra de característiques bàsiques del producte ===
 
=== Mostra del preu ===
 
=== Botons d'acció ===
 
==== Afegir productes ====
 
==== Retirar productes ====
 
==== Eliminar un producte del cistell ====
 
=== Mostra del total de compra ===


== Botons d'acció i navegació ==
== Botons d'acció i navegació ==

Revisió del 21:41, 30 des 2025

Inicialització de la sessió i connexió a la BD

Sempre que es treballa amb sessions, el primer que hem de fer és iniciar-la abans d'escriure el codi HTML

session_start();

A partir d'aquí, l'element principal d'aquesta aplicació és el cistell, el qual està present a la sessió i requerit per la majoria de codis. Per això, hem de comprovar que estigui creat, i en cas que no ho estigui, que es creï.

// Inicialitzar cistell if (!isset($_SESSION['cistell'])) {

   $_SESSION['cistell'] = array();

}

A més d'incloure la connexió a la BD i requerir el fitxer funcions.php, on es troba la funció calcularPreus

require_once "funcions.php"; require_once "./connexioBD/connexioR.php";

Per últim, sempre inicialitzarem una variable que indicarà el total de compra. La inicialitzem aquí perquè s’utilitza dins d’un bucle i no hi ha cap altre lloc per declarar-la. Com que és un bucle, si la declaréssim dins, el valor del total es reiniciaria a 0 a cada iteració, i volem que el total s’acumuli al llarg de totes les iteracions

$total = 0; // Inicialitzem la variable del preu total

Mostra de missatges d'error o èxit

Quan s'afageix, es retira o s'elimina un producte del cistell des del propi cistell, el procés el realitza el codi processa.php, que depenent del resultat de l'operació, ens pot enviar un missatge d'èxit o d'error mitjançant la sessió

// Si processa.php realitza correctament l'operació, catàleg.php veuria el següent:
$_SESSION['missatge_ok'] = "S'ha retirat 1 unitat(s) de Teclat mecànic del cistell.";

// Si processa.php no realitza correctament l'operació, catàleg.php veuria el següent:
$_SESSION['missatge_error'] = "X" // Depenent de l'error es mostrarà un missatge o un altre 

Per tant, dins del cistell hem de comprovar si hem rebut aquest missatge (ja sigui el d'error o èxit), i en cas afirmatiu, mostrar-lo

<!-- Missatge de confirmació d'accions -->

           <center>
           <?php if (isset($_SESSION['missatge_ok'])): // Quan s'enviï un missatge de confirmació?>
               <p style="color: green; font-weight: bold;">
                   <?php
                       echo htmlspecialchars($_SESSION['missatge_ok']); // Mostrem el missatge
                       unset($_SESSION['missatge_ok']); // Eliminem el missatge, així al recarregar la pàgina no tornarà a sortir, únicament mostrant-se un sol cop
                   ?>
               </p>
           <?php endif; ?>
           </center>
           <!-- Missatge d'error -->
           <center>
           <?php if (isset($_SESSION['missatge_error'])): // Quan s'enviï un missatge d'error?>
               <p style="color: red; font-weight: bold;">
                   <?php
                       echo htmlspecialchars($_SESSION['missatge_error']); // Mostrem el missatge
                       unset($_SESSION['missatge_error']); // Eliminem el missatge, així al recarregar la pàgina no tornarà a sortir, únicament mostrant-se un sol cop
                   ?>
               </p>
           <?php endif; ?>
           </center>

Un exemple d'un missatge seria el següent:

Mostra de productes

La mostra de productes és bàsicament una taula amb les següents columnes:

  • Imatge
  • Nom del producte
  • Preu unitari
  • Quantitat
  • Subtotal
  • Accions

Mitjançant un foreach, per cada producte es crearà una fila on es definiràn els aspectes abans comentats, a més de realitzar un càlcul de preu i descompte

Càlcul de totals, subtotals i descomptes

Gestió de l'stock

Mostra de característiques bàsiques del producte

Mostra del preu

Botons d'acció

Afegir productes

Retirar productes

Eliminar un producte del cistell

Mostra del total de compra

Botons d'acció i navegació

Botó de compra

Botó per buidar el cistell

Botó per tornar al catàleg