Cistell: diferència entre les revisions

De Wiki personal d'en Guillem Serrat
Es crea la pàgina amb «== Inicialització de la sessió i connexió a la BD == == 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ó<pre> // Si processa.php realitza correctament l'operació, catàleg.php veuria el següent: $_SESSION['missatge_ok'] = "S'ha ret...».
 
Cap resum de modificació
Línia 1: Línia 1:
== Inicialització de la sessió i connexió a la BD ==
== 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<pre>
session_start();
</pre>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ï.<pre>
// Inicialitzar cistell
if (!isset($_SESSION['cistell'])) {
    $_SESSION['cistell'] = array();
}
</pre>A més d'incloure la connexió a la BD i requerir el fitxer funcions.php, on es troba la funció [[Funcions de la pràctica 5.2#Funció calcularPreus|calcularPreus]]<pre>
require_once "funcions.php";
require_once "./connexioBD/connexioR.php";
</pre>Per últim, sempre inicialitzarem una variable que indicarà el total de compra<pre>
$total = 0; // Inicialitzem la variable del preu total
</pre>


== Mostra de missatges d'error o èxit ==
== Mostra de missatges d'error o èxit ==

Revisió del 21:33, 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

$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

Per cada producte, es crearà una fila on

Botons d'acció i navegació

Botó de compra

Botó per buidar el cistell

Botó per tornar al catàleg