Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonsoir a tous ,
Je travaille actuellement sur un projet ou je doit générer des formulaires dynamiques, j'utilise les collections.
d'abord je doit récupérer une liste de produits dans la base de données et créer ma collection de produit.
j'arrive bien a récupérer tout mes produits et j'affiche bien mon formulaire.
Mon souci je veux pouvoir a chaque itération attribuer le Name correspondant au produit.
Merci de me donner un coup de main.
Hors ligne
Bonjour et bienvenue
Quel coup de main demande tu exactement ?
J'ai déjà créé des formulaires dynamique pas plus tard qu'il y a deux semaine donc c'est plutot frais. Mais sans code de ta part, point bloquant etc... je ne pourrait pas t'aider.
Il y a plusieurs manière de faire encore une fois et tout dépend de celle que tu as choisie, le processus de binding sera différent.
Hors ligne
Bonjour ,
Je vous remercie pour votre réponse.
Comme je le disait plus haut j'ai utilisé le form collection de ZF2 ,et tout marche nickel .
ici dans mon fieldset , je défini un seul champs qui va récupérer un tableau et me genere les input en fonction du nombre d'entrée.
vu que j'ai un seul champs , du coup j'ai un seul name pour qui est répété dans tous les inputs générés , or moi je veux pouvoir définir un name pour chaque input.
[lang=php] $this->add(array( 'type' => 'Zend\Form\Element\Number', 'name' => 'name', 'filters' => array('StringTrim', 'StripTags'), 'options' => array( ), 'attributes' => array( 'min' => '0', ), ));
ce code me génère 8 input , lorsque j'appelle la collection dans ma vue , 8 parce que je récupère les produits dans ma base qui me renvoi 8.
mais touts les champs ont name => name .
j’espère avoir étayer le problème , sinon je serai très ravi de connaitre d'autres alternatives pour réaliser un formulaire dynamique.
Merci
Hors ligne
Bonjour,
[lang=php] /** * Permet de retourner une nouvelle instance d'un formulaire avec les bon champs * @param array $items * @return Object */ public function getFormClient(array $items) { $form = $this->getForm('[mon_form]'); foreach ($items as $item) { $fieldset = $this->getForm('[mon_fieldset]'); $fieldset->initBis($item); $form->get('items')->add($fieldset, array('name' => 'key_fieldset-'.$item->getIdItemNetworks())); } return $form; }
Voici une méthode chez moi pour ajouter des fieldsets nommé. tu remarquera la méthode getForm qui ets un raccourci pour
[lang=php] $this->serviceLocator->get('formElementManager')->get('ton_form');
Ensuite le fieldset possède une méthode initBis qui me permet de faire des chose en dehors du contexte automatique des formulaire, Orkin m'avait donné la solution il y a quelque temps sur ce forum.
Si tu as des questions je reste à l'écoute.
Hors ligne
Bonjour ,
Merci de m'avoir donné ces astuces.
Je pense que ça pourra m'aider dans la suite.
Merci encore pour votre disponibilité et votre réactivité.
Hors ligne