je tourne le truc dans tous les sens, mais je dois rater qqch : J’ai un champs extra #TOTO de type checkbox avec 2 valeurs : val1 et val2.
Je veux faire un test pour afficher qqch en fonction de chaque valeur cochée, sachant qu’il est possible de cocher les 2 valeurs :
si val1 > afficher « valeur 1 cochée »
si val2 > afficher « valeur 2 cochée »
#TOTO renvoie les valeurs cochées séparées pas des virgules. Je fais donc [(#LISTE{#TOTO}|find{val1}) Choix 1 coché] mais ça ne fonctionne que si val1 est cochée et pas si val1 ET val2 sont cochées.
J’imagine que ça se joue au niveau de #TOTO car si je le remplace par val1,val2, ça fonctionne…
#LISTER_VALEURS**{toto} et [(#TOTO|explode{’,’})] me renvoient simplement Array. Idem pour [(#TOTO|foreach)].
[(#LISTER_VALEURS**{conditionnement}|explode{’,’})] me donne un warning PHP (Warning: explode() expects parameter 2 to be string, array given in D:\XXXXX\spip3-2\ecrire\inc\filtres.php on line 4120).
J’ai tenté de les passer par un SET/GET, mais ça ne change rien…
Au lieu de tester la présence de chaque valeur, il vaut (évidemment!) mieux faire une boucle DATA sur le champ extra.
Donc, au lieu de :
[(#LISTER_VALEURS**{monchampextra}|array_keys|find{valeur1}|oui) Case 1 cochée ]
[(#LISTER_VALEURS**{monchampextra}|array_keys|find{valeur2}|oui) Case 2 cochée ]
ad lib (ça devient chiant au bout de la 4e valeur)...
Il vaut mieux faire :
<BOUCLE_champ_extra(DATA){source table,#LISTER_VALEURS**{monchampextra}}> #CLE / #VALEUR cochée
</BOUCLE_champ_extra>