Changement de fonctionnement formulaire participation Formidable ?

Pour un site d’AMAP, j’utilise depuis plusieurs année un formulaire qui permet aux adhérents de choisir les distributions sur lesquelles ils veulent tenir un des stands.

Le mécanisme s’appuie sur Participation_formidable, les gens cochent des cases et valident. Comme ils sont loggués, les événements sont attribués à l’utilisateur courant et tout se passe correctement.

Depuis quelques jours, le comportement a changé :
Les réponses sont toujours correctement sauvegardées dans formulaires_reponses et formulaires_reponses_champs. Par contre, l’ecriture dans la table evenements_participant échoue. Cela donne pour l’usager un cadre vert «Merci. Vos réponses ont bien été enregistrées.» suivi d’un cadre rouge «Erreur» (pas des plus explicite) qui semble bien refléter le succès de la première écriture et l’echec de la seconde.

Je constate que le problème est apparu suite à des mises à jours de plugins. Il me reste une version locale avec des plugins non mis à jour, et qui fonctionne toujours.
Version obsolète, mais qui marche : API 3.9.1, Champs extra 4.3.0, Formidable 7.5.1, Saisie 6.3.0
Version mise à jour qui ne fonctionne plus : API 3.9.2, Champs extra 4.3.2, Formidable 7.5.2, Saisies 6.3.2

Participation_formidable n’a pas reçu de mise à jour. Je suppose que c’est du côté de Formidable que quelque chose à changé.

J’ajoute que j’ai toujours été surpris et admiratif que le formulaire arrive à trouver toutes les infos avec comme seul champ une saisie d’événement en case à cocher multiple. En l’absence de champ Utilisateur, dans le formulaire, c’est celui de la session qui était pris. C’est peut-être bien ce comportement futé qui a été omis à la mise à jour de plugin.

Retrouver ce fonctionnement serait pour moi très souple, sinon si il faut ajouter un champ dans le formulaire, merci de m’indiquer comment proceder pour pouvoir prendre les nouvelles réponses tout en gardant celles déjà présentes en base.

Je suis bien sûr prêt à fournir toute précision utile.

Formidable participation a été étendu dans le cadre d’une association qui gère des dizaines d’inscription par jour, et je n’ai pas eu écho de la part des salarié·es de ladite association de problème récent.

Donc je suppose un souci microlocal chez toi. A tu deja tenté de vérifier/réparer la base de donnée ?

Il y a un point que je ne comprends cependant pas dans ton message, c’est celui-ci.

J’ajoute que j’ai toujours été surpris et admiratif que le formulaire arrive à trouver toutes les infos avec comme seul champ une saisie d’événement en case à cocher multiple. En l’absence de champ Utilisateur, dans le formulaire, c’est celui de la session qui était pris. C’est peut-être bien ce comportement futé qui a été omis à la mise à jour de plugin.

Je ne comprend pas à quel comportement ancien tu fais référence qui aurait été cassé. Peux tu expliciter ? De manière plus général, peut tu envoyer un export yaml de ton formulaire que je reproduise.

Merci Maîeul de l’attention que tu m’accordes

La réparation de base n’a pas eu d’effet.

Ce que je voulais dire : Précedemment, le formulaire était capable d’imputer les événement choisi à la personne qui remplit le formulaire, sans qu’un champ id_auteur ou adresse mail soit présent dans le formulaire. C’est ça que je trouvais épatant.

Désormais, l’enregistrement en base des participants à un événement dans spip_evenements_participants ne marche plus. Je ne sais pas où trouver le message d’erreur qui devrait apparaitre et me renseignerait sur ce qui coince.

le yaml : Permanences AMAP - Pastebin.com

Je laisse aux participants la possibilité de se noter sur un pad en attendant, donc l’urgence est relative.

Bon, alors je viens de regarder, et je ne vois vraiment pas comment, en l’état, ton formukaire pouvait fonctionner (et j’ai testé sur une vieille version de formidable).

Tu a configuré pour que le champ « email » soit le champ « evenement ». Sauf que le champ evenement renvoi un tableau et pas une chaine. Or depuis au moins 2022 l’email soumis passe par la fonction php « trim » qui attend un chaine et pas un tableau → ca plante donc. C’est cela ton problème. Je me demande si tu serai pas passé d’un choix unique de date à un choix multiple, d’où ton plantage récent.

Et du reste le formulaire n’arrive pas à trouver les informations, contrairement à ce que tu dis. En tout cas c’est plus compliqué que cela :

  • il associe la personne connecté à une réponse, certe
  • mais par contre pour associer l’email à un evenement dans la table spip_evenements_participation, il a besoin d’info (d’où la configuration du formulaire).

Bref, la solution consiste tout simplement a créer un champ « email » dans le formulaire et à le choisir dans la configuration du formulaire.

Pour éviter qu’une personne doivent le remplir, tu peux :

  • mettre un champ caché (ce que je ne recommande pas), mais par defaut il sera vide
  • mettre un champ visible en disant qu’il est prerempli depuis la session de l’internaute → 'cest probablement mieux

Je vais ouvrir une MR sur formidable_participation pour éviter que d’autres fassent la même erreur que toi en demandant un champ qui est pas input / email pour fournir un email…

Oui, je te l’accorde, ça marchait jusqu’à la mise à jour récente, mais c’était mystérieux.

Je vais suivre ton conseil, évidemment, et tant mieux si cela amène une amélioration pour éviter une mauvaise pratique.

···

Le 12/06/2026 à 16:01, Maïeul Rouquette via Discuter de SPIP a écrit :

Maïeul Rouquette maieul
Juin 12

Bon, alors je viens de regarder, et je ne vois vraiment pas comment, en l’état, ton formukaire pouvait fonctionner (et j’ai testé sur une vieille version de formidable).

Tu a configuré pour que le champ « email » soit le champ « evenement ». Sauf que le champ evenement renvoi un tableau et pas une chaine. Or depuis au moins 2022 l’email soumis passe par la fonction php « trim » qui attend un chaine et pas un tableau → ca plante donc. C’est cela ton problème. Je me demande si tu serai pas passé d’un choix unique de date à un choix multiple, d’où ton plantage récent.

Et du reste le formulaire n’arrive pas à trouver les informations, contrairement à ce que tu dis. En tout cas c’est plus compliqué que cela :

  • il associe la personne connecté à une réponse, certe
  • mais par contre pour associer l’email à un evenement dans la table spip_evenements_participation, il a besoin d’info (d’où la configuration du formulaire).

Bref, la solution consiste tout simplement a créer un champ « email » dans le formulaire et à le choisir dans la configuration du formulaire.

Pour éviter qu’une personne doivent le remplir, tu peux :

  • mettre un champ caché (ce que je ne recommande pas), mais par defaut il sera vide
  • mettre un champ visible en disant qu’il est prerempli depuis la session de l’internaute → 'cest probablement mieux

Je vais ouvrir une MR sur formidable_participation pour éviter que d’autres fassent la même erreur que toi en demandant un champ qui est pas input / email pour fournir un email…


Voir le sujet ou répondre à cet e-mail pour répondre.

Vous recevez cet e-mail car vous avez activé la liste de diffusion.

Pour vous désabonner de ces e-mails, cliquez ici.

Vraiment, je ne vois pas comment cela pouvait marcher…

mais ça à marché pendant quelques années

encore une fois je vois pas c ommnet cela a pu marcher après 2022…