Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 11-05-2014 10:39:34

pconrad
Membre
Date d'inscription: 29-04-2014
Messages: 20

Problème sur validation d'une formulaire avec un 'select' complété par

Bonjour,

Dans un formulaire de création d'utilisateur, j'ai un 'select' qui est rempli lors de la saisie du code postal, et qui donne la liste des villes pour un code postal donné.

Dans mon formulaire :

Code:

[lang=php]        // Ville (select alimenté par le code postal)
        $this->add(array(
                'name' => 'Town',
                'type' => 'Select',
                'required' => true,
                'options' => array(
                        'label' => $translator->translate('formTown','user'),
                        'value_options' => array(),
                        'empty_option' => $translator->translate('formEmptyTown','user')
                )
        ));

Le tableau des options est bien sur vide à la création du formulaire.
Le 'select' est bien mis à jour lors du changement du code postal, le contrôleur fonctionne donc très bien.
Lors de la validation du formulaire, j'ai un message me disant que la valeur n'est pas présente dans la liste. En effet, un mettant dès la construction une valeur teste, le formulaire est bien validé.
J'ai lu dans un forum, qu'une personne avait directement modifier la classe 'Element\select'  pour ajouter une directive de non contrôle de la valeur dans le tableau des options.

Il n'y a pas une autre solution plus propre ?

Hors ligne

 

#2 12-05-2014 10:20:22

pconrad
Membre
Date d'inscription: 29-04-2014
Messages: 20

Re: Problème sur validation d'une formulaire avec un 'select' complété par

Peut on récupérer le 'select' avant le '$form->isValid()' pour y mettre les valeurs, ou supprimer le contrôle ?

Hors ligne

 

#3 12-05-2014 10:39:03

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: Problème sur validation d'une formulaire avec un 'select' complété par

Euh dsl je comprend pas bien ton problème.

Ton select est bien remplie lors de l'affichage, mais à la validation de ton formulaire la valeur est nulle?
Vérifie que ton select est construit correctement (en js je suppose) et que le "name" est bon.

TU peu vérifier la valeur récupérée en récupérant les données en POST avant de vérifier la validité du formulaire:

Code:

[lang=php]
$this->getRequest()->getPost('name');

Hors ligne

 

#4 12-05-2014 11:33:52

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Problème sur validation d'une formulaire avec un 'select' complété par

Salut, retirer la validation côté serveur c'est pas une bonne chose. Ce que tu peux faire c'est créer ton propre composant qui va contenir l'input pour saisir le code postal et le select. De cette façon tu pourras facilement te faire un validateur qui va prendre la valeur du input et faire la requête pour vérifier que la valeur sélectionnée dans le select est bien correcte avec celle ou celles retournées par la requête.
Tu peux aussi récupérer la valeur du code postal dans le post comme te l'a dit flobrflo et ensuite remplir le select avec la requête juste avant le isValid.

Hors ligne

 

#5 12-05-2014 16:20:19

pconrad
Membre
Date d'inscription: 29-04-2014
Messages: 20

Re: Problème sur validation d'une formulaire avec un 'select' complété par

Orkin a écrit:

Salut, retirer la validation côté serveur c'est pas une bonne chose. Ce que tu peux faire c'est créer ton propre composant qui va contenir l'input pour saisir le code postal et le select. De cette façon tu pourras facilement te faire un validateur qui va prendre la valeur du input et faire la requête pour vérifier que la valeur sélectionnée dans le select est bien correcte avec celle ou celles retournées par la requête.
Tu peux aussi récupérer la valeur du code postal dans le post comme te l'a dit flobrflo et ensuite remplir le select avec la requête juste avant le isValid.

Oui, je pensais à cette solution. Retirer la validation ne me parait pas être une bonne chose, bien que la validation est faite via le composant ajax qui rempli le 'select'. Je vais essayer de créer un composant, cela fera un bon exercice.

flobrflo a écrit:

Euh dsl je comprend pas bien ton problème.

Dans le formulaire, le 'select' est créé avec l'array de 'values_option' vide. Comme le 'select' est complété par de l'ajax, lors de la validation du formulaire, la valeur du 'select' ne peut pas être vérifié dans les valeurs qui devraient se trouver dans 'values_option'. Sauf mettre les 33000 communes de France dedans....

Hors ligne

 

#6 13-05-2014 08:42:07

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: Problème sur validation d'une formulaire avec un 'select' complété par

ok, mais tu peu bien regarder ce qu'il y a dedans non?
est ce qu'au moment de valider ton formulaire t'a bien le nom d'une commune?

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