Plusieurs use cases peuvent conduire à un besoin de placer et de mettre à jour dynamiquement les options d'un champ Select en se basant sur un attribut d'une collection CMS. Nous verrons dans cet article comment mettre en place cette fonctionnalité sur notre site Webflow.
Ce tutoriel vous accompagnera dans la mise en place d'un champ select dynamique basé sur une collection CMS. Chez Elias, nous avons besoin de proposer à l'utilisateur de sélectionner un un job parmi la liste des jobs présents dans notre collection CMS. Nous allons donc mettre en place ensemble un formulaire qui contiendra un champ Select, qui lui-même ira piocher ses valeurs (<option>) dans notre base de données.
Plusieurs méthodes, aussi simples les unes que les autres, existent pour mettre cette fonctionnalité en place. Merci Webflow ;)
La première méthode est d'ajouter du Custom Code avant la balise <Body/> de notre page.
Il nous faudra dans un premier temps ajouter deux classes aux éléments suivants :
Une fois les classes ajoutées, voici le peu de custom code qu'il vous faudra ajouter pour que la magie opère. Rendez-vous dans les paramètres de votre page Webflow et copiez-y le code suivant :
<script>
$('.select-text').each(function(){
var s = $(this).text();
$('.select-item').append('<option value="'+s+'">'+s+'</option>');
})
</script>
Ce code vous permettra de trouver sur votre page votre élément select et de le remplir avec tous les éléments CMS dont le nom contient la classe '.select-item'.
Vous vous doutez bien qu'une fonctionnalité si pratique, si utilisée par la communauté Webflow, et si rapide à mettre en oeuvre aura forcément intéressé nos amis chez Finsweet.
Ces derniers ont donc mis en place un tutoriel en 3 étapes, tout aussi simple que la méthode custom code javascript.
<!-- [Attributes by Finsweet] CMS Select -->
<script async src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-cmsselect@1/cmsselect.js"></script>
Il ne vous restera plus qu'à publier votre site, et le tour est joué !
Il ne vous aura fallu que quelques minutes pour mettre en place une fonctionnalité bien pratique sur votre site Webflow. Vous pourrez désormais utiliser n'importe quel champ de n'importe laquelle de vos collections CMS pour remplir un champ Select dans vos formulaires.
Pour plus de Tips et Tutoriels Webflow, n'hésitez pas à aller visiter notre blog ou à nous poser votre question directement sur elias.studio/contact