Formidable

Bonjour

Comment peut-on afficher les cle|Label (le nom des options) d’un champ du type liste déroulante avec formidable ?
Je cherche à afficher les choix (uniquement s’ils ont été sélectionnés dans une ou plusieurs réponses).

Merci

Bonjour,

  je fais ça:
<BOUCLE_rep(FORMULAIRES_REPONSES){id_formulaire=21}{id_auteur}{","}>
         - [(#VOIR_REPONSE{selection_1}|textebrut)]
</BOUCLE_rep>

Le 01/06/2017 à 11:25, Syd Dolby a écrit :

Bonjour

Comment peut-on afficher les cle|Label (le nom des options) d’un champ du type liste déroulante avec formidable ?
Je cherche à afficher les choix (uniquement s’ils ont été sélectionnés dans une ou plusieurs réponses).

Merci

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Merci Lætitia
Voici mon code dans une boucle formulaire.
Je ne vois pas comment éviter les doublons…

[(#REM) Afficher le titre du label du champ selection_4 ]
[<p>(#SAISIES|unserialize|saisies_chercher{selection_4}|table_valeur{options/label}) :</p> ]
  
[(#REM) un tableau pour enregistrer les résultats ]
#SET{valeursSelection4,#ARRAY}
<BOUCLE_rep(FORMULAIRES_REPONSES){id_formulaire}>
  [(#REM) 0 en 3e argument pour identifier les non-réponses ]
  #SET_PUSH{valeursSelection4, #VOIR_REPONSE{selection_4, valeur_uniquement, 0}|textebrut}
</BOUCLE_rep>
<BOUCLE_mesResultats(POUR){tableau #GET{valeursSelection4}}>
  [(#VALEUR|!={0}|oui)
    #SET_PUSH{mesResultats, #VALEUR}
  ]
</BOUCLE_mesResultats>
  
[(#REM) pour afficher les résultats ]
[(#GET{mesResultats}|implode{','})]

Je viens de retrouver cette fonction qui fait le boulot :

#SET{mesResultats,#SAISIES|unserialize|saisies_chercher{selection_4}|table_valeur{options/datas}|saisies_chaine2tableau}

[(#REM) pour afficher les résultats ]
[(#GET{mesResultats}|implode{','})]

Encore un problème…

Je cherche à limiter l’affichage d’un listing de formulaires réponse, en fonction de la valeur de certaines réponses, présente dans l’environnement.

Exemple, pour : &choix=choix2 pour le champ selection_4
On affiche toutes les réponses dont le choix est choix2

Je ne vois pas trop comment faire avec les tables spip_formulaires_réponse et spip_formulaires_reponses_champs, autrement qu’en enregistrant des tableaux complexes.

Une idée ?
Merci

J’ai fini par trouvé.

<BOUCLE_spip_formulaires_reponses_champ(FORMULAIRES_REPONSES_CHAMPS){id_formulaires_reponse}{nom=selection_4}{valeur=#ENV{choix}}>
  #SET{monTableau, #GET{monTableau}|push{#ID_FORMULAIRES_REPONSE}}
</BOUCLE_spip_formulaires_reponses_champ>

Et avec une condition :
<BOUCLE_condition(CONDITION){si #ENV{choix}|oui}>
<INCLURE{fond=inclure/item_listing,id_formulaire=3,monTableau=#GET{monTableau},env}>
</BOUCLE_condition>

Par contre, j’ai un tableau avec le listing des valeurs « choix », mais je n’arrive pas à la mettre dans le bon ordre.

<BOUCLE_tabDataChoix(DATA){source tableau,#GET{monTableauChoix}}>
  <p>[(#VALEUR|foreach)]</p>
</BOUCLE_tabDataChoix>

Il me le liste comme ça :
choix1,choix10,choix11,choix12,choix2,choix3…

Et je veux bien sûr :
choix1,choix2,choix3,choix4,…,choix10,choix11…