Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Zend_Form
Zend_Form Forum d'entraide pour le composant Zend_Form du Zend Framework (création de formulaires, helpers, AJAX etc.). Avant de poster -> FAQ Zend_Form.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2011, 15h13   #1
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
Par défaut Population d'un formulaire à l'ouverture de la vue

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 :
Code :
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));
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.
Dans tutoriel-zf, il y a ceci :
Code :
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));
            }
        }
    }
J'essaie de faire le même genre de truc dans mon appli :
Code :
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()
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.

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 :
Code :
$form->populate($etudiant->infosEtudiant($username));
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.

Quelqu'un peut m'expliquer ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 19h00   #2
Membre expérimenté
 
Avatar de manuscle
 
Homme Emmanuel Belair
Développeur informatique
Inscription : septembre 2004
Messages : 463
Détails du profil
Informations personnelles :
Nom : Homme Emmanuel Belair
Âge : 32
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2004
Messages : 463
Points : 597
Points : 597
Salut,

J'aime pas trop la méthode du tuto, tu peux essayer ça si tu veux:

Code :
1
2
3
4
5
6
7
8
9
 
$form = new Application_Form_Album();
$form->envoyer->setLabel('Sauvegarder');
$form->setDefaults($etudiant->infosEtudiant($username)); // !doit etre un tableau!
 
if ($this->_request()->isPost() && $form->isValid($_POST)) {
    // Sauvegarde
}
$this->view->form = $form;
__________________
Les idiots sont ceux qui ne posent jamais de question!
manuscle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 16h52   #3
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
Je m'y remets seulement aujourd'hui mais pareil avec setDefaults.
Il passe dans le if dès le premier affichage du formulaire.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 20h22   #4
Membre expérimenté
 
Avatar de manuscle
 
Homme Emmanuel Belair
Développeur informatique
Inscription : septembre 2004
Messages : 463
Détails du profil
Informations personnelles :
Nom : Homme Emmanuel Belair
Âge : 32
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2004
Messages : 463
Points : 597
Points : 597
Bon là faut procéder par élimination car je vois pas d'où ça vient et ce n'est pas normal!

$form->setMethod('post'); //peux-etre ?!

As-tu bien fait comme ça:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
public function infospersoAction()
    {
 
$form = new Application_Form_Album();
$form->envoyer->setLabel('Sauvegarder');
$form->setDefaults($etudiant->infosEtudiant($username)); // !doit etre un tableau!
 
if ($this->_request()->isPost() && $form->isValid($_POST)) {
    // Sauvegarde et redirection
}
// Sinon affichage du formulaire
$this->view->form = $form;
     }
Tu peux montrer aussi le contenu de ton formulaire et de ta vue?

Une solution est de faire un test avec un formulaire tout simple:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
public function testAction()
{
$form = new Zend_Form();
$submitButton = new Zend_Form_Element_Submit('submit');
$submitButton->setLabel("Valider");
$form->addElement($submitButton);
$text = new Zend_Form_Element_Text('texte');
$text->setLabel('un texte au pif');
$text->setRequired(true);
$form->addElement($text);
 
if ($this->_request()->isPost() && $form->isValid($_POST)) {
    // Sauvegarde et redirection
    Zend_Debug::dump($form->getValues());
}
// Sinon affichage du formulaire
$this->view->form = $form;
}
__________________
Les idiots sont ceux qui ne posent jamais de question!
manuscle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2011, 10h39   #5
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
J'avais essayé ta solution et quelques variantes personnelles mais rien n'y fait.
Le problème est que ça passe dans le if systématiquement.

Voici mon controlleur complet dans son état actuel :
AccueiletudiantController.php
Code :
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
 
class AccueiletudiantController extends Zend_Controller_Action
{
 
    public function init()
    {
 
    }
 
    /**
     * Affiche la page d'accueil de l'étudiant
     */
    public function indexAction()
    {
        /* Récupération de l'étudiant 
         * et du stage auquel il est éventuellement inscrit
         */
        $auth = Zend_Auth::getInstance();
        $username = $auth->getIdentity()->uti_login;
        $etudiant = new Application_Model_DbTable_Etudiant();
        $this->view->stage = $etudiant->inscritStage($username);
 
    } // Fin public function indexAction()
 
    /**
     * Affiche la liste des stages possibles pour l'étudiant et gère l'inscription
     */
    public function voirstagesAction()
    {
        // Recherche des stages possibles pour l'étudiant connecté
        $auth = Zend_Auth::getInstance();
        $username = $auth->getIdentity()->uti_login;
        $stage = new Application_Model_DbTable_Stage();
        $this->view->listestages = $stage->stagesPossiblesEtudiant($username);
 
        if ($this->getRequest()->isPost()) 
        {
            $inscrire = $this->getRequest()->getPost('inscrire');
            if ($inscrire == "M'inscrire") 
            {
                $idsession = $this->getRequest()->getPost('selection');
 
                $etudiant = new Application_Model_DbTable_Etudiant();
                $etudiant->inscrire($username, $idsession);
                $this->_helper->redirector('index');
            } // Fin if ($inscrire == "M'inscrire")
        } // Fin if ($this->getRequest()->isPost()) 
    } // Fin public function voirstagesAction()
 
    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 ($this->_request->isPost())
        {
            $formData = $this->_request->getPost();
            if ($form->isValid($formData)) 
            {
 
                $values = $form->getValues();
            } // Fin if ($form->isValid($request->getPost()))
            else 
            {
                $form->populate($formData);
            }        
        } // Fin if ($request->isPost())
        else
        {
 
            $form->setDefaults($etudiant->infosEtudiant($username));
 
        }
 
    } // Fin public function infospersoAction()
 
    /**
     * Désinscrit l'étudiant du stage auquel il est inscrit
     */
    public function desinscrireAction()
    {
        $auth = Zend_Auth::getInstance();
        $username = $auth->getIdentity()->uti_login;
        $etudiant = new Application_Model_DbTable_Etudiant();
        $etudiant->desinscrire($username);
 
        $this->_helper->redirector('index');
    } // Fin public function desinscrireAction()
}
=> Pour rappel, si je commente tout le if de la fonction infospersoActions et que j'y décommente le $form->populate, les données s'affichent sans erreur.

Voici mon formulaire Infosperso.php :
Code :
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
<?php
 
class Application_Form_Infosperso extends Zend_Form
{
 
    public function init()
    {
        $this->setName('identification');
        $this->setMethod('post');
 
 
        // Nom de l'étudiant
        $prs_nom = new Zend_Form_Element_Text('prs_nom');
        $prs_nom
            ->setLabel('Nom')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim');
 
        // Prénom de l'étudiant
        $prs_prenom = new Zend_Form_Element_Text('prs_prenom');
        $prs_prenom
            ->setLabel('Prénom')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim');
 
        // Adrel de l'étudiant
        $prs_adrel = new Zend_Form_Element_Text('prs_adrel');
        $prs_adrel
            ->setLabel('Adrel')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')/*
            ->addValidator('EmailAddress', true)*/;
 
        // Téléphone de l'étudiant
        $prs_telephone = new Zend_Form_Element_Text('prs_telephone');
        $prs_telephone
            ->setLabel('Téléphone')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')/*
            ->addValidator('Digits', true)*/;
 
        // adresse de l'étudiant
        $etu_adresse = new Zend_Form_Element_Textarea('etu_adresse');
        $etu_adresse
            ->setLabel('Adresse')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim');
 
        // Code postal de l'étudiant
        $etu_code_postal = new Zend_Form_Element_Text('etu_code_postal');
        $etu_code_postal
            ->setLabel('Code postal')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')/*
            ->addValidator('PostCode', true)*/;
 
        // Commune de résidence de l'étudiant
        $id_commune_residence = new Zend_Form_Element_Select('id_commune_residence');
        $id_commune_residence
            ->setLabel('Commune de résidence')
            ->setRequired(true);
 
        $commune = new Application_Model_DbTable_Commune();
        $result = $commune->fetchAll();
        $listecommunes = array();
        foreach($result as $cmn)
        {
            $listecommunes[$cmn->cmn_id] = $cmn->cmn_nom;
        }
        $id_commune_residence->setMultiOptions($listecommunes);
 
        // Date de naissance de l'étudiant
        $etu_date_naissance = new ZendX_JQuery_Form_Element_DatePicker('etu_date_naissance');
        $etu_date_naissance->setLabel('Date de naissance (jj/mm/aaaa)');
        $etu_date_naissance->addValidator('Date', true, 'd/m/Y');
        $etu_date_naissance->setJQueryParam('dateFormat', 'dd/mm/yy');
        $etu_date_naissance->setJQueryParam('changeMonth', true);
        $etu_date_naissance->setJQueryParam('changeYear', true);
        $etu_date_naissance->setJQueryParam('defaultDate', '-21y');
        $etu_date_naissance->setJQueryParam('maxDate', '-18y');
        $etu_date_naissance->setJQueryParam('monthNamesShort', array('Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Juin', 'Juil', 'Aou', 'Sep', 'Oct', 'Nov', 'Déc'));
        $etu_date_naissance->setJQueryParam('dayNamesMin', array('Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa', 'Di'));
        $etu_date_naissance->setJQueryParam('yearRange', 'c-10:-18');
 
        // Établissement d'origine de l'étudiant
        $etb_nom = new Zend_Form_Element_Text('etb_nom');
        $etb_nom
            ->setLabel("Nom")
            ->setRequired(false)
            ->addFilter('StripTags')
            ->addFilter('StringTrim');
 
        // Adresse établissement d'origine
        $etb_adresse = new Zend_Form_Element_Textarea('etb_adresse');
        $etb_adresse
            ->setLabel("Adresse")
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim');
 
        // Code postal de l'établissement d'origine
        $etb_code_postal = new Zend_Form_Element_Text('etb_code_postal');
        $etb_code_postal
            ->setLabel('Code postal')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')/*
            ->addValidator('PostCode')*/;
 
        // Commune de l'établissement d'origine
        $id_commune_etablissement = new Zend_Form_Element_Select('id_commune_etablissement');
        $id_commune_etablissement
            ->setLabel('Commune')
            ->setRequired(true)
            ->setMultiOptions($listecommunes);
 
        // Téléphone de l'établissement d'origine
        $etb_telephone = new Zend_Form_Element_Text('etb_telephone');
        $etb_telephone
            ->setLabel('Téléphone')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')/*
            ->addValidator('Digits')*/;
 
        // Type de l'établissement d'origine
        $te_id = new Zend_Form_Element_Select('te_id');
        $te_id
            ->setLabel("Type d'établissement")
            ->setRequired(true);
 
        $typeetab = new Application_Model_DbTable_Typeetablissement();
        $result = $typeetab->fetchAll();
        $listetypesetab = array();
        foreach($result as $te)
        {
            $listetypesetab[$te->te_id] = $te->te_libelle;
        }
        $te_id->setMultiOptions($listetypesetab);
 
        // Concours passé par l'étudiant
        $ccr_libelle = new Zend_Form_Element_Text('ccr_libelle');
        $ccr_libelle
            ->setLabel('Concours')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim');
 
        // Discipline du concours
        $dsc_nom = new Zend_Form_Element_Text('dsc_nom');
        $dsc_nom
            ->setLabel('Discipline')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim');
 
        // Bouton Envoyer
        $envoyer = new Zend_Form_Element_Submit('envoyer');
        $envoyer->setLabel('Mettre à jour');
 
        $this->addElements(array(    $prs_nom, 
                                    $prs_prenom, 
                                    $prs_adrel, 
                                    $prs_telephone, 
                                    $etu_adresse, 
                                    $etu_code_postal, 
                                    $id_commune_residence, 
                                    $etu_date_naissance, 
                                    $etb_nom, 
                                    $etb_adresse, 
                                    $etb_code_postal, 
                                    $id_commune_etablissement, 
                                    $etb_telephone, 
                                    $te_id, 
                                    $ccr_libelle, 
                                    $dsc_nom, 
                                    $envoyer
                                )
                            );
    }
 
 
}
=> J'y ai commenté provisoirement les validators mais le problème ne vient pas de là. Si je laisse seulement le premier élément prs_nom, le problème apparaît quand même (champ vide et erreur de validation justement parce que c'est vide).

Voici ma vue infosperso.phtml :
Code :
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
<?php $this->headTitle('Informations personnelles'); ?>
<h1>Vos informations personnelles</h1>
<hr />
<h2>Vous</h2>
<?php 
echo $this->form->prs_nom;
echo $this->form->prs_prenom;
echo $this->form->prs_adrel;
echo $this->form->prs_telephone;
echo $this->form->etu_adresse;
echo $this->form->etu_code_postal;
echo $this->form->id_commune_residence;
echo $this->form->etu_date_naissance;
?>
<hr />
<h2>Votre établissement d'origine</h2>
<?php 
echo $this->form->etb_nom;
echo $this->form->etb_adresse;
echo $this->form->etb_code_postal;
echo $this->form->id_commune_etablissement;
echo $this->form->etb_telephone;
echo $this->form->te_id;
?>
<hr />
<h2>Le concours que vous avez passé</h2>
<?php 
echo $this->form->ccr_libelle;
echo $this->form->dsc_nom;
?>
<hr />
<?php echo $this->form->envoyer;?>
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2011, 11h59   #6
Membre expérimenté
 
Avatar de manuscle
 
Homme Emmanuel Belair
Développeur informatique
Inscription : septembre 2004
Messages : 463
Détails du profil
Informations personnelles :
Nom : Homme Emmanuel Belair
Âge : 32
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2004
Messages : 463
Points : 597
Points : 597
Dans ta vue il te manque la balise <form> juste pour info.

Bon j'arrive pas à reproduire ton problème!
Dans firebug tu as un onglet 'Reseau'
Dans cet onglet tu peux voir la liste des GET et/ou POST, voit-tu une ligne POST?
__________________
Les idiots sont ceux qui ne posent jamais de question!
manuscle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2011, 12h16   #7
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par manuscle Voir le message
Dans ta vue il te manque la balise <form> juste pour info.
Oups !
Corrigé !
Code :
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
<?php $this->headTitle('Informations personnelles'); ?>
<h1>Vos informations personnelles</h1>
<hr />
<form action="<?php echo $this->url(array('action'=>'infosperso')); ?>" method="post">
    <h2>Vous</h2>
    <?php 
    echo $this->form->prs_nom;
    echo $this->form->prs_prenom;
    echo $this->form->prs_adrel;
    echo $this->form->prs_telephone;
    echo $this->form->etu_adresse;
    echo $this->form->etu_code_postal;
    echo $this->form->id_commune_residence;
    echo $this->form->etu_date_naissance;
    ?>
    <hr />
    <h2>Votre établissement d'origine</h2>
    <?php 
    echo $this->form->etb_nom;
    echo $this->form->etb_adresse;
    echo $this->form->etb_code_postal;
    echo $this->form->id_commune_etablissement;
    echo $this->form->etb_telephone;
    echo $this->form->te_id;
    ?>
    <hr />
    <h2>Le concours que vous avez passé</h2>
    <?php 
    echo $this->form->ccr_libelle;
    echo $this->form->dsc_nom;
    ?>
    <hr />
    <?php echo $this->form->envoyer;?>
</form>
Mais ça n'a rien changé, à part la mise en page mais on verra ça plus tard.

[/quote]Dans firebug tu as un onglet 'Reseau'
Dans cet onglet tu peux voir la liste des GET et/ou POST, voit-tu une ligne POST?[/QUOTE]
Oui.
Et dans le détail, j'y vois ceci :
Citation:
Refererhttp://localhost/stagmas/public/accueiletudiant
Ce qui me semble normal puisque c'est bien de là qu'on vient pour arriver sur la page infosperso.

Une autre idée derrière cette question ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2011, 12h36   #8
Membre expérimenté
 
Avatar de manuscle
 
Homme Emmanuel Belair
Développeur informatique
Inscription : septembre 2004
Messages : 463
Détails du profil
Informations personnelles :
Nom : Homme Emmanuel Belair
Âge : 32
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2004
Messages : 463
Points : 597
Points : 597
Ce n'est pas normal que tu es une ligne POST car lorsque tu arrive sur ta page, tu arrive par l'url, donc en GET.
__________________
Les idiots sont ceux qui ne posent jamais de question!
manuscle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2011, 13h34   #9
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
Donc le problème viendrait de la façon dont j'ai géré les boutons dans la page Accueiletudiant ?
Code phtml :
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
<?php $this->headTitle('Accueil étudiant'); ?>
<h1>Stages Master</h1>
Bonjour <?php echo $this->escape($this->stage['prs_prenom']);?> 
<?php echo $this->escape($this->stage['prs_nom']);?><br />
<?php if($this->stage['ssn_date_debut'] != '') : ?>
    Vous êtes inscrit au stage "<?php echo $this->escape($this->stage['ssn_code']).' - '.$this->escape($this->stage['ssn_libelle']);?>" 
    du <?php echo $this->escape($this->stage['ssn_date_debut']);?> 
    au <?php echo $this->escape($this->stage['ssn_date_fin']);?> 
    dans l'établissement "<?php echo $this->escape($this->stage['etb_nom']);?>" 
    de <?php echo $this->escape($this->stage['cmn_nom']);?> 
    (<?php echo $this->escape($this->stage['dpt_numero']);?>).<br />
 
    <form action="<?php echo $this->url(array('action'=>'desinscrire')); ?>" method="post">
        <input type="submit" name="desinscrire" value="Me désincrire du stage" />
    </form>
 
<?php else : ?>
    Vous avez été reçu au concours écrit.<br />
    Sur cet espace, vous pouvez vous inscrire à un stage Master dans un lycée agricole.<br />
    <form action="<?php echo $this->url(array('action'=>'voirstages')); ?>" method="post">
        <input type="submit" name="voirstages" value="Voir les stages de ma discipline" />
    </form>
<?php endif; ?>
<form action="<?php echo $this->url(array('action'=>'infosperso')); ?>" method="post">
        <input type="submit" name="infosperso" value="Compléter mes informations personnelles" />
</form>
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2011, 14h48   #10
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
Effectivement, c'était ça.
J'ai mis method="get" dans les deux boutons de la page accueiletudiant et ça fonctionne.

Merci de m'avoir aiguillé vers le bon chemin Manuscle.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2011, 15h28   #11
Membre expérimenté
 
Avatar de manuscle
 
Homme Emmanuel Belair
Développeur informatique
Inscription : septembre 2004
Messages : 463
Détails du profil
Informations personnelles :
Nom : Homme Emmanuel Belair
Âge : 32
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2004
Messages : 463
Points : 597
Points : 597
De rien ;-)

Pourquoi des boutons dans un formulaire pour changer de page? De simples liens ne suffiraient pas (c juste par curiosité)?
__________________
Les idiots sont ceux qui ne posent jamais de question!
manuscle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2011, 15h41   #12
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
Je trouve ça plus joli les boutons !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2011, 15h51   #13
Membre expérimenté
 
Avatar de manuscle
 
Homme Emmanuel Belair
Développeur informatique
Inscription : septembre 2004
Messages : 463
Détails du profil
Informations personnelles :
Nom : Homme Emmanuel Belair
Âge : 32
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2004
Messages : 463
Points : 597
Points : 597
tu peux faire des boutons en css, mais ça tu le sais déjà j'imagine
__________________
Les idiots sont ceux qui ne posent jamais de question!
manuscle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2011, 16h17   #14
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
Oui mais bon l'urgence c'est que ça fonctionne. Le decorum, je verrai plus tard.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h48.


 
 
 
 
Partenaires

Hébergement Web