|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Nouveau Membre du Club
![]() Yoann RousseauIngénieur Etudes et Développement Inscription : janvier 2008 Messages : 46 ![]() |
Bonjour à tous et à toutes !
Je manipule depuis peu le Frameword PHP Zend (version 1.11.11) qui se révèle être fort puissant, mais je rencontre depuis quelques jours quelques problèmes concernant la gestion des formulaires. Voici le contexte. J'ai une matrice qui permet la saisie d'un ensemble d'informations (identiques) pour x clients. Actuellement, ce x vaut 10, mais rien ne dit qu'il ne soit pas amener à évoluer. Afin (notamment) de permettre cette évolution future, j'ai créé un formulaire client classique qui contient l'ensemble des champs nécessaires. Dans mon controller, j'itère alors sur le nombre de clients à gérer, créer le formulaire pour chacun d'eux, et ajoute ce formulaire à un formulaire global avec addSubForm(). Le code ressemble donc à ceci : Code :
Code :
Et là est tout le problème.. Après soumission, lorsque j'affiche tous les paramètres de la request, cette dernière ne me retourne les données que du premier formulaire (donc du premier client).. Et là pour le coup, j'avoue ne pas comprendre. Sachant que comme le montre le bout de code précédent, mon bouton submit est propre au formulaire global, et devrait donc soumettre toutes les données de l'ensemble des formulaires non ? J'attends donc vos lumières pour m'aider sur ce problème car là, je sèche... Merci à vous ! |
||||
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Yoann RousseauIngénieur Etudes et Développement Inscription : janvier 2008 Messages : 46 ![]() |
En fait, j'ai un peu plus cerné le problème. Il se trouve que le code généré est le suivant :
![]() ![]() On remarque donc que le premier client (clientA) n'est pas encadré par une balise <form>. Cette dernière a en effet été remplacée par la balise <dl>. En revanche, les autres clients sont encadrés par <form>, ce qui a donc pour conséquence que leurs données ne sont pas transmises lors de la soumission du formulaire global. La question devient alors : mais pourquoi diantre ce comportement différent entre le premier client et les autres ? Les formulaires sont tous générés dans la même boucle, alors pourquoi l'ajout d'un subform ne se comporte pas de la même manière ? Obscur pour moi tout ça pour le coup... |
|
00
|
|
|
#3 | ||||||
|
Nouveau Membre du Club
![]() Yoann RousseauIngénieur Etudes et Développement Inscription : janvier 2008 Messages : 46 ![]() |
Et re !
Solution enfin trouvée ! Je la poste ici pour ceux qui rencontreraient le même problème. Mon formulaire Application_Form_Form_Client() était implémenté comme suit : Code :
Code :
![]() En fait, tout du moins apparemment, l'ajout en SubForm d'un Zend_Form se contente d'insérer le formulaire dans son intégralité (bloc <form></form>). Passer le tout en Zend_Form_SubForm permet à Zend d'indicer correctement les champs et de les inclure au formulaire précédent. Et en plus ca permet toujours d'accéder aux sous formulaires de la manière suivante : Code :
Bon code à tous/toutes ! |
||||||
|
00
|
Copyright © 2000-2012 - www.developpez.com