Zone de liste déroulante Symfony sans bouton d'envoi

J'avais besoin d'une liste déroulante pour un site symfony que je concevais. En tant que programmeur débutant de Symfony, je souhaitais l’enregistrer afin de pouvoir le référencer ultérieurement. Bien que cela utilise un peu de javascript, il fonctionnera correctement et sera rétro-compatible pour les utilisateurs sans javascript activé.


J'ai cherché pendant un moment la bonne façon de faire cela dans Symfony. J'espère que cela permettra à quelqu'un d'autre de gagner un peu de temps.

Tout d'abord, voici le code:


'- Aller à la liste -')), array ('onChange' => 'Javascript: this.form.submit ();'))?> Var13 ->

Je vais parcourir les parties non évidentes.

Le premier est le form_tag normal avec votre module de retour et votre action.

Suivant, sélection est votre sélection retournée. $ liste est votre liste d'objets.

array ('include_custom' => '- Aller à la liste -') crée un champ ou un titre initial unique pour la liste.

array ('onChange' => 'Javascript: this.form.submit ();' est le javascript qui exécute le formulaire lors du changement de champ.

Le submit_tag dans les balises noscript permet au bouton d'envoi d'être vu uniquement par ceux sans javascript activé. Cela permet de garder votre conception compatible avec ceux qui ne disposent pas de JavaScript.

Si vous êtes perdu, consultez la référence des formulaires symfony pour plus de détails.