Bonjour à tous,
Je suis en train de développer un site d'annonces et j'ai opté pour le framework Symfony2 qui me paraît pas mal.
Mais je rencontre des difficultés depuis quelques jours sur les formulaires.
Lors de la création d'une annonce, les champs affichés par défaut sont : titre, description, catégorie.
Lors qu'un annonceur choisit une catégorie dans la liste déroulante, un appel ajax est lancé qui va chercher la liste des sous catégories. En fonction de la sous-catégorie sélectionné, je souhaite afficher les informations relatives à cette sous-catégorie.
Par exemple, pour la catégorie Vehicules, il y a les sous-catégories "Voitures", "Moto", "Accessoires-Pièces".
Si l'on choisit la sous-catégorie "Voitures", je souhaite afficher les champs relatifs à l'entité Voitures. Idem pour les autres sous-catégories.
Ces entités héritent de mon entité Annonce (avec ORM\InheritanceType("JOINED")). Donc je ne peux pas les ajouter dans mon builderForm lors de la création du formulaire. Sinon, il faudrait que j'ajoute trop de champs dont la plupart ne seront pas utilisés.
Si j'ajoute ces champs via Ajax, je ne pourrais pas les valider avec Symfony car ils ne seront pas associés à l'objet form de Symfony.
J'ai regardé du côté de addEventListener. Mais ça ne peut pas regler mes problèmes car il faudrait que je les affiche en les cachant et que via javascript, je les affiche en fonction de la catégorie sélectionnée. Ca fait too much et trop de données inutilement ajouté au formulaire lors de sa création.
Je me demande s'il y a un moyen via ajax d'exécuter une action dans le controleur qui va aller ajouter des champs dans mon objet AnnonceType et renvoyer le nouveau formulaire via ajax et l'afficher.
Quelqu'un a t-il une solution ?
Partager