Tiens, c’est marrant, j’ai fait des trucs un peu similaires il n’y a pas longtemps, pour un moteur de recherche. De mémoire :
La solution |parametre_url
fonctionne bien avec les formulaires en method="get"
:
– la checkbox name="#BIDULE"
est en value="1"
– au moment de la validation du formulaire, chaque checkbox cochée est passée dans l’url
Par exemple, pour #BIDULE
= bidule1
, bidule2
et bidule3
, si on coche les 1ere et 2eme checkboxes, le formulaire renverra sur l’url : http://monsite.fr/spip.php?page=mapage&bidule1=1&bidule3=1
– on récupère ensuite les valeurs cochées dans la page chargée avec #ENV{#BIDULE}
(en faisant défiler dans une boucle tous les biduleN
de #BIDULE
(je ne sais pas si je suis très clair).
Le problème, c’est qu’il faut récupérer ces valeurs à chaque changement de page... donc :
– soit remplacer les boutons "précédent/suivant" par des boutons (qu’on peut maquiller autrement) de validation de formulaire (les 2 redirigeant vers des pages différentes) ;
– soit utiliser du javascript pour récupérer les checkboxes cochées lors du clic sur "précédent/suivant" et les passer dans l’url... (mais ça me semble compliqué, et on est dépendant de javascript, ce qui est mal).
MAIS il y a peut-être mieux à faire avec #SESSION
(doc) et #SESSION_SET
(doc)...
Par exemple, avec ajax : au lieu d’utiliser des checkboxes, on place un lien ajax "ajouter au panier" (avec en paramètre de ce lien l’id_du_produit
).
Le lien peut pointer vers une mini-page de deux lignes :
Quand le visiteur clique, la page est chargée en ajax : le lien est remplacé par "Le produit a été ajouté à votre panier", et un cookie stocke : produit_459876=1 (par exemple).
A la fin, on a juste à récupérer dans ledit cookie (grâce à une boucle faisant défiler les différents id_du_produit
et à la balise #SESSION
) l’ensemble des valeurs produit_n
: toutes celles qui sont égales à 1 sont celles sélectionnées par le visiteur.
Conclusion :
Je vous laisse les deux méthodes (ça peut peut-être vous donner des idées), mais la deuxième semble plus faisable, il me semble.
C’est à perfectionner/préciser. J’espère que ça vous aidera...