Bonjour,
Je ne sais pas si c'est mon mal de tête du jour qui m'empêche de comprendre ce qui ne va pas mais je n'arrive pas à afficher les valeurs dans un formulaire à l'ouverture de la vue.
Contexte :
Une vue AccueilEtudiant contient un bouton "Compléter mes informations personnelles" qui renvoit sur l'action "infospersoAction" du contrôleur "AccueilEtudiantController".
Si je fais ce qui suit, cela fonctionne :
Maintenant, le bouton "Mettre à jour qui se trouve au bas du formulaire InfosPerso devrait me renvoyer sur la même action, si j'en crois le tutoriel et qui fonctionne lui aussi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public function infospersoAction() { $auth = Zend_Auth::getInstance(); $username = $auth->getIdentity()->uti_login; $etudiant = new Application_Model_DbTable_Etudiant(); $form = new Application_Form_Infosperso(); $this->view->form = $form; $form->populate($etudiant->infosEtudiant($username));
Dans tutoriel-zf, il y a ceci :
J'essaie de faire le même genre de truc dans mon appli :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 public function modifierAction() { $form = new Application_Form_Album(); $form->envoyer->setLabel('Sauvegarder'); $this->view->form = $form; if ($this->getRequest()->isPost()) { $formData = $this->getRequest()->getPost(); if ($form->isValid($formData)) { $id = $form->getValue('id'); $artiste = $form->getValue('artiste'); $titre = $form->getValue('titre'); $albums = new Application_Model_DbTable_Albums(); $albums->modifierAlbum($id, $artiste, $titre); $this->_helper->redirector('index'); } else { $form->populate($formData); } } else { $id = $this->_getParam('id', 0); if ($id > 0) { $albums = new Application_Model_DbTable_Albums(); $form->populate($albums->obtenirAlbum($id)); } } }
Et j'obtiens un formulaire avec toutes les zones vierges et le message de validation "Value is required and can't be empty" à chaque élément du formulaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 public function infospersoAction() { $auth = Zend_Auth::getInstance(); $username = $auth->getIdentity()->uti_login; $etudiant = new Application_Model_DbTable_Etudiant(); $form = new Application_Form_Infosperso(); $this->view->form = $form; //$form->populate($etudiant->infosEtudiant($username)); $request = $this->getRequest(); if ($request->isPost()) { $formData = $this->getRequest()->getPost(); if ($form->isValid($formData)) { $values = $form->getValues(); } // Fin if ($form->isValid($request->getPost())) else { $form->populate($formData); } } // Fin if ($request->isPost()) else { $form->populate($etudiant->infosEtudiant($username)); } } // Fin public function infospersoAction()
Alors que je suis sensé afficher pour la première fois le formulaire, il semble que le programme passe quand même dans le if ($request->isPost()) et cherche à valider le formulaire au lieu de passer dans le else et de remplir le formulaire.
Si je décommente la ligne :
C'est à dire si je commence ma fonction exactement comme le premier cas qui fonctionne présenté plus haut dans le message, même résultat : formulaire vierge et erreurs de validation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $form->populate($etudiant->infosEtudiant($username));
Quelqu'un peut m'expliquer ?
Partager