J’ai un formulaire formidable qui contient un champ « case à cocher » dont la réponse est optionnelle (=non obligatoire). Ce champ s’appelle checkbox_1
Je cherche à faire une boucle sur la table FORMULAIRES_REPONSES_CHAMPS dans le but de repérer (en vue de les exclure ensuite en utilisant le critère doublons) les réponses pour lesquelles il n’y a pas eu de case de cochée (valeur de checkbox_1 vide)
Comment rédiger correctement le critère à indiquer dans la boucle un truc dans l’esprit : <BOUCLE_vide(FORMULAIRES_REPONSES_CHAMPS){#VALEUR checkbox_1=NULL}>
Quelqu’un(e) a déjà fait qqchose du genre ? Merci+++ d’avance
Merci Maïeul, c’est OK avec cette écriture.
Je tombe cependant sur un os complémentaire.
Ce formulaire est un formulaire d’inscription à des postes de bénévole. Comme il y a de nombreux postes et de nombreux créneaux, une même personne peut remplir plusieurs fois le formulaire : il indique le poste et le créneau qu’il souhaite mais à chaque fois il re-renseigne son nom, son téléphone (…). Du coup, dans l’idée de faire un « annuaire » pour avoir simplement les coordonnées (tel, mail…) de chaque bénévole n’apparaît qu’une fois, j’ai imaginé une solution qui met #SET et #GET à contribution :
<BOUCLE_tous(FORMULAIRES_REPONSES spip_formulaires_reponses_champs){id_formulaire=7} {nom=checkbox_1} {valeur=!''}>
#SET{name,#VOIR_REPONSE{input_1,valeur_uniquement}}
<BOUCLE_individu(FORMULAIRES_REPONSES_CHAMPS){valeur=#GET{name}}{0,1}>
(et ensuite les réponses : #VOIR_REPONSE{input_1,valeur_uniquement}, #VOIR_REPONSE{input_2,valeur_uniquement} etc...)
À chaque tour de la boucle « tous », #GET{name} est bien rempli (si je demande à l’afficher, je le vois bien), mais la boucle « individu » ne renvoie rien.
Par curiosité, j’ai fait renseigné « en dur » la boucle « individu »
…
<BOUCLE_individu(FORMULAIRES_REPONSES_CHAMPS){valeur=André DUPONT}}{0,1}>
(et ensuite les réponses : #VOIR_REPONSE{input_1,valeur_uniquement}, #VOIR_REPONSE{input_2,valeur_uniquement} etc…)
…
ça fonctionne bien.
Tout se passe comme si le critère {valeur=#GET{name}} n’était pas correctement prise en compte.
Une idée de ce qu’il se passe ?
c’est parce que #VOIR_REPONSE{input_1,valeur_uniquement} sans précision envoie une valeur « formatée » (avec balise <p>). Le uniquement signifie juste qu’on enlève le label. Ca ne correspond donc pas exactement à la valeur en base. Utilise plutot #VOIR_REPONSE{input_1,brut} `.
Merci Maieul. J’aurais pu tourner longtemps en rond dans le sens où, lorsque on affiche #GET{name},
par exemple
…
<BOUCLE_tous(FORMULAIRES_REPONSES spip_formulaires_reponses_champs){id_formulaire=7} {nom=checkbox_1} {valeur=!’’}> #SET{name,#VOIR_REPONSE{input_1,valeur_uniquement}}
…
on a Antoine DUPONT Emile N’TAMAK François CROS Thomas RAMOS (…) donc sans formatage.
Donc, là pas trop compris mais pour autant c’est nickel
Merci infiniment Maïeul !