Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Ayant un souci avec mon formulaire et n'ayant toujours pas trouvé de solution, je me tourne vers la communauté en espérant trouvé de l'aide.
Mon problème est le suivant:
J'ai un formulaire de création de compte que j'affiche dans une vue. Seulement dans ce formulaire que je vais utiliser plusieurs fois dans mon application, j'ai mis des champs supplémentaires destinés à être rempli uniquement par l'administrateur que l'utilisateur lambda ne doit pas voir.
Dans ma vue je fais donc ce test:
Si l'admin est logué et qu'il rentre un nouveau membre alors il voit tout le formulaire sinon lorsque c'est un visiteur qui s'inscrit il ne voit que certains champs.
Seulement voilà, lorsque je n'affiche que certains champs et que je clique sur le bouton envoyer rien ne se passe alors que si je le fais en admin j'ai bien l'action du formulaire qui se déclenche.
Ma vue:
<?php if (($this->RoleId())==1){ echo $this->form; } else { //echo $this->form; echo $this->form->id; echo $this->form->nom; echo $this->form->prenom; echo $this->form->adresse; echo $this->form->cp; echo $this->form->ville; echo $this->form->tel; echo $this->form->gsm; echo $this->form->email; echo $this->form->username; echo $this->form->password; echo $this->form->password2; echo $this->form->Envoyer; } ?>
Je ne comprends pas pourquoi le formulaire avec des champs en moins ne réagit pas au moment de l'envoi. Pouvez-vous me dire ce qu'il ne va pas et éventuellement me corriger?
Merci d'avance.
Dernière modification par pepito35 (12-03-2011 08:46:09)
Hors ligne
Bonjour,
A tu eu l'idée de regarder le code HTML généré... Je pense que la balise form n'est pas présente. D'où une absence d'action à effectuer.
Jean
Hors ligne
jfvole a écrit:
Bonjour,
A tu eu l'idée de regarder le code HTML généré... Je pense que la balise form n'est pas présente. D'où une absence d'action à effectuer.
Jean
ah oui, en effet, merci beaucoup pour ta réponse. Je n'avais pas pensé à regarder le code généré et la balise form est absente sur le formulaire "allégé".
Comment déclarer proprement dans la logique ZF, les balises pour ce formulaire afin qu'il réagisse à l'envoi des infos?
merci.
Hors ligne
Bonjour,
je pense que tu devrais gérer ça dans ton controller ou au niveau de la création du formulaire :
Controller :
//Sur tous les champs que tu souhaite supprimer if (($this->RoleId()==1){ $form->removeElement('name'); } // Ou au moment de la création du formulaire $form = new Form_Monformuliare(($this->RoleId());
Form_Monformulaire
public function __contruct($roleId){ .... if($roleId == 1){ $this->addElements(array([i]ALL[/i])) }else{ $this->addElements(array([i]FOR USERS[/i]) } ... }
Hors ligne
Super! Merci Dede. Je m'en vais tester ça avant de passer le sujet en résolu.
Merci à tous les 2.
Edit: Résolu, merci encore!
Dernière modification par pepito35 (12-03-2011 08:44:25)
Hors ligne
Pages: 1