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