Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 06-04-2009 19:08:06

eMeRiKa
Membre
Lieu: Paris
Date d'inscription: 05-02-2009
Messages: 50
Site web

Plusieurs form sur la même page / problème validation

Bonjour,

Je souhaite avoir plusieurs formulaires sur la même page qui renvoient à la même action. En passant un paramètre à l'url de chaque formulaire cela marche sans soucis.

J'ai bien mes trois formulaires qui se remplissent des données et s'enregistrent.

Par contre lorsqu'un formulaire n'est pas valide, les autres formulaires ne se peuplent pas de leurs données, ils sont vides. Seul le formulaire qui retourne des erreurs se remplit.

J'ai testé de faire un print_r sur mes tableaux qui servent à peupler les autres formulaires et les données s'affichent bien sans soucis.

Avez-vous une idée d'où vient le problème et comment y remédier ?

Merci

Hors ligne

 

#2 06-04-2009 20:02:24

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: Plusieurs form sur la même page / problème validation

Si ca n'apparait pas, qu'une seule réponse, tes formulaires ne sont pas peuplés.


----
Gruiiik !

Hors ligne

 

#3 07-04-2009 10:35:33

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: Plusieurs form sur la même page / problème validation

Il me semble que pour qu'ils se peuplent, il faut obligatoirement faire appel à Zend_Form::isValid()...

EDIT: "obligatoirement" dans le cas où l'on appel pas populate() avec les données POST.

Dernière modification par Mr.MoOx (07-04-2009 12:42:46)

Hors ligne

 

#4 07-04-2009 11:04:11

keilnoth
Membre
Date d'inscription: 30-08-2008
Messages: 128
Site web

Re: Plusieurs form sur la même page / problème validation

La méthode isValid() fait elle-même appel à la méthode populate(), méthode qui peut être appelée directement sans passer par isValid. smile

Dernière modification par keilnoth (07-04-2009 11:04:25)


Quelques tutoriaux Zend Framework !

Hors ligne

 

#5 08-04-2009 12:36:06

eMeRiKa
Membre
Lieu: Paris
Date d'inscription: 05-02-2009
Messages: 50
Site web

Re: Plusieurs form sur la même page / problème validation

Mais pourtant chacun de mes formulaires est peuplé. Ils comportent tous la méthode populate, cela marche impeccable en affichage normal, ma page affiche bien les formulaires peuplés.

Ce n'est que si un formulaire retourne une erreur qu'ils ne sont pas peuplés. Et j'ai bien fait un print_r des array qui servent à peupler et ils s'affichent sans problème. C'est donc la méthode populate qui ne marche pas ?

Il doit y avoir un conflit quelque part dans les méthodes populate.

Si la méthode isValid() fait un populate cela peut expliquer le problème car chaque formulaire est indépendant et donc peupler avec les données du $_POST rendra forcément un seul formulaire plein et les autres vides.

Comment gérer vous plusieurs formulaires sur la même page ? Ma méthode n'est sans doute pas la bonne

Dernière modification par eMeRiKa (08-04-2009 12:38:46)

Hors ligne

 

#6 08-04-2009 13:10:33

eMeRiKa
Membre
Lieu: Paris
Date d'inscription: 05-02-2009
Messages: 50
Site web

Re: Plusieurs form sur la même page / problème validation

J'ai trouvé la solution. Avant pour chaque formulaire je faisais :

Code:

if($this->_request->isPost() AND $forminfos2->isValid($_POST) AND $type == 'forminfos2') {
...
}

avec $type le paramètre passé par l'url. En inversant l'ordre des conditions :

Code:

if($type == 'forminfos2' AND $this->_request->isPost() AND $forminfos2->isValid($_POST)) {
...
}

Le problème n'existe plus. Il semble donc que la méthode isPost pause problème. Malgré le fait qu'elle soit bien liée à chaque instance de Zend_Form elle agit sur mes trois formulaires.

Dernière modification par eMeRiKa (08-04-2009 13:11:06)

Hors ligne

 

#7 08-04-2009 14:41:01

mdelanno
Membre
Lieu: Nord
Date d'inscription: 26-08-2007
Messages: 90
Site web

Re: Plusieurs form sur la même page / problème validation

Il est préférable d'appeler setDefaults au lieu de populate, qui est un simple alias (ça fait un appel de méthode en moins). Il y en a déjà assez avec les decorators.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages