Bonjour,
J'ai une inscription à faire et pour cela je dois faire intervenir une dizaine d'entités Doctrine....
C'est pour cela que j'aimerais faire un formulaire en plusieurs étapes mais j'ai cherché un moyen de faire ça et je suis un peu perdu.
J'aimerais bien faire un formulaire dans lequel je peux avoir au moins deux boutons : suivant et enregistrer et quitter. (un bouton précédent fonctionnel en plus serait le top !)
J'ai déjà rencontré ce genre de formulaires en Python (Framework Pyramid) mais je vous avoue que je ne comprenais pas le fonctionnement et en plus il y avait pas mal d'AJAX (et je n'ai jamais trop pratiqué le AJAX)
Les possibilités que j'ai trouvé sont :
1) CraueFormBundle
Ne fonctionne pas dans mon cas car si je comprends bien CraueFormBundle permet d'hydrater un seul objet à l'aide de plusieurs formulaires qui en forment les étapes. Moi j'ai plusieurs Entités à hydrater....
2) Plugin jQuery qui met un formulaire sur plusieurs étapes. (FormToWizard)
En fait, je pourrais utiliser ce si chaque formulaire était lié (par exemple dans le formulaire Client on appelle le formulaire commande dans lequel on appelle le formulaire etc ) ce qui n'est pas mon cas ...
3) Chaque formulaire passe par un if (isSubmitted() && isValid()) et est sauvegardé dans une variable Session jusqu'à la dernière étape à laquelle on sauvegarde le tout.
4) Custom
Ce à quoi j'ai pensé c'est d'afficher mes formulaires très simplement :
A) une route telle que :
B) un controller qui aurait une fonction indexAction($step) qui va déterminer l'étape à laquelle on s'est arrêté précédemment et qui renvoie à l'action correspondante par ex: step3Action(){}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 mon_bundle_steps: path: inscription/{step} defaults: { _controller: MonBundle:MonController:index }
C) Chaque action (tq step[entier]Action) instancie un objet, crée le formulaire pour cet objet affiche le formulaire et enregistre (ou met en session) avant de rediriger à l'étape suivante.
Après le problème c'est d'avoir les boutons save&quit et next fonctionnels et que on ne puisse pas foutre la pagaille en modifiant le step dans la barre d'url....
Je voudrais vous demander si quelqu'un à déjà rencontré la problématique et qui pourrait m'aiguiller dans cette tâche.
Merci.
Partager