Cistell: diferència entre les revisions
| 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: | |||
* 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