Bonsoir la cie,
Cela fait pas mal de temps que je ne suis plus venu demander de l'aide
Je refais une nouvelle interface de gestion du club afin de la moderniser et introduire de nouvelles fonctionnalités.
Une nouvelle fonctionnalité est un système d'alertes à plusieurs couleurs issu d'ici : https://www.w3schools.com/howto/howto_js_alert.asp ... cela fonctionne très bien, jusqu'au moment où je dois supprimer les alertes récoltées (mises en session) pour afficher une alerte prioritaire.
J'utilise des alertes de couleur : vert, rouge, orange, bleu et couleur du club.
Commençons par la création d'une alerte (mineure) par la lecture des données du membre, dont le principe reste le même partout : le round car la donnée BDD est en 4 chiffre, permet de supprimer les 0 non significatifs
Ensuite, la suppression de la session pour une alerte prioritaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $m_array['membre']['abonnement']=$in['p_abonnement']; if ($m_array['membre']['abonnement']<=4 && $m_array['membre']['abonnement']!=0) { // ----- Alerte $array_gestion_alerte['bleu']['type']='alerte bleu'; $array_gestion_alerte['bleu']['texte']=$array_gestion_alerte['bleu']['texte'].'<p><strong>Abonnement</strong> : Le nombre d\'abonnement arrive à sa fin -> '.round($m_array['membre']['abonnement']).'</p>'; $_SESSION['s_gestion_alerte']=$array_gestion_alerte; unset($array_gestion_alerte); }
Et enfin l'affichage des alertes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 // ---------- Gestion des alertes PRIORITAIRES if ($m_array['options']['exclu']=='oui') { unset($_SESSION['s_gestion_alerte']); // ----- Suppression des alertes précédentes $array_gestion_alerte['alerte']['type']='alerte'; $array_gestion_alerte['alerte']['texte']='<p><strong>ATTENTION</strong> : Ce membre a été exclu du club !</p>'; $_SESSION['s_gestion_alerte']=$array_gestion_alerte; unset($array_gestion_alerte); } else if ($m_array['options']['demission']=='oui') { unset($_SESSION['s_gestion_alerte']); // ----- Suppression des alertes précédentes $array_gestion_alerte['orange']['type']='alerte orange'; $array_gestion_alerte['orange']['texte']='<p><strong>ATTENTION</strong> : Ce membre a démissionné du club !</p>'; $_SESSION['s_gestion_alerte']=$array_gestion_alerte; unset($array_gestion_alerte); } else if ($m_array['rgpd']['cst']=='non') { $array_gestion_alerte['alerte']['type']='alerte'; $array_gestion_alerte['alerte']['texte']=$array_gestion_alerte['alerte']['texte'].'<p><strong>Covid Safe Ticket</strong> : Le membre n\'a pas encore présenté son CST !</p>'; $_SESSION['s_gestion_alerte']=$array_gestion_alerte; unset($array_gestion_alerte); }
Mon problème est que le code suivant n'efface pas la session : unset($_SESSION['s_gestion_alerte']);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 if (isset($_SESSION['s_gestion_alerte'])) { $array_gestion_alerte=$_SESSION['s_gestion_alerte']; } print "<div class=\"div_alerte\">"; if (isset($array_gestion_alerte)) { foreach ($array_gestion_alerte AS $boucle1) { $alerte_type=$boucle1['type']; $alerte_texte=$boucle1['texte']; print "<div class=\"$alerte_type\">"; print "<span class=\"closebtn\">×</span>"; print "$alerte_texte"; print "</div>"; } unset($array_gestion_alerte); } else { print" "; } print "</div>";
Cela se passe aussi bien en local que sur l'hébergement
Est-ce du au fait que la session est un array ?
Une idée de la cause ?
Voici un exemple de session pour 2 alertes rouges ('alerte') et 1 orange ('orange') :
Seule l'alerte orange ne devrait s'afficher car prioritaire : membre démissionaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 's_gestion_alerte' => array (size=2) 'alerte' => array (size=2) 'type' => string 'alerte' (length=6) 'texte' => string '<p><strong>Cotisation</strong> : La date est dépassée</p><p><strong>RC Familiale</strong> : La date est dépassée</p><p><strong>Covid Safe Ticket</strong> : Le membre n'a pas encore présenté son CST !</p>' (length=209) 'orange' => array (size=2) 'type' => string 'alerte orange' (length=13) 'texte' => string '<p><strong>ATTENTION</strong> : Ce membre a démissionné du club !</p>' (length=71)
NB : le $m_array récolte les informations pour l'affichage d'informations rapides ou le formulaire du membre -> le $m_array sera alors plus complet.
Si quelqu'un a une idée
@+
ddaweb
Modification :
Je devrais arriver à ceci, c'est une version que j'ai abandonnée car trop compliquée à gérer :
![]()







Répondre avec citation
Partager