Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je crois avoir mal saisit l'utilisation de isValid pour Zend Form.
J'ai créé un générateur de zend form qui me génère des zend form avec comme paramètres :
$zendForm->setAction ( '?page=form/answer&action=checkIfValid&id=' . $id );
$zendForm->setAttrib ( 'id', 'dvp-form' );
$zendForm->setDescription ( $myForm->description );
$zendForm->setEnctype ( Zend_Form::ENCTYPE_URLENCODED );
$zendForm->setMethod ( 'POST' );
$zendForm->setName ( $myForm->name );
$zendForm->setView ( new Zend_View () );
+ ajout des champs choisis par l'utilisateur
+ ajout du bouton submit
Une fois généré je le serialize et le stock en base.
Pour l'afficher je le récupère en base, le désérialize et l'affiche simplement en faisant un echo du form.
Quand je clique sur le bouton valider je pars donc sur ma page ?page=form/answer&action=checkIfValid&id=' . $id
ou là je désire traiter les actions de validations (si l'utilisateur à saisit les bonne données en fonction des validateurs.) Pour celà voilà ce que je fait :
$zendFormInDB = unserialize ( $myZendFormInDB)
if ($zendFormInDB->isValid ( $_POST )) {
$isValid = true; //Traiter action IsValid à faire
} else {
$isValid = false;
}
Mais il valide tout le temps et ne passe jamais à false alors que des champs sont requis.
Si quelqu'un peut m'aiguiller ? merci par avance
Djo
Dernière modification par djo (03-06-2010 12:09:08)
Hors ligne
Dans ta génération tu ne parles pas des validateurs, et sans validateurs, ton test isValid va forcément retourné true.
Tu veux peut être simplement testé que en gros ton formulaire est bien été "submit" ?
Hors ligne
En fait j'ai compris mon erreur. A la génération de mon form je faisais
$element->isRequired()
au lieu de $element->setRequired()
du coup mon isValid() testait rien.
Merci pour l'aide
Hors ligne
djo a écrit:
Une fois généré je le serialize et le stock en base.
Pour l'afficher je le récupère en base, le désérialize et l'affiche simplement en faisant un echo du form.
je suis curieux, pourquoi stocker en base ? est-ce pour des raisons de performance ? à quel moment cette opération est faite ?
merci par avance.
Hors ligne
Bonjour pheuh,
L'idée est de pouvoir récupérer le zend form à n'importe quel moment et de n'avoir juste qu'à l'afficher.
Hors ligne
Mais Zend le fait tout seul non en créant une classe formulaire non?
Hors ligne
Pages: 1