IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Form PHP Discussion :

Population d'un formulaire à l'ouverture de la vue [ZF 1.10]


Sujet :

Zend_Form PHP

  1. #1
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    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 : 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));
    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 : 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));
                }
            }
        }
    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
        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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $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 Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  2. #2
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Salut,

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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!

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    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 Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  4. #4
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
     
    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!

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    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 : 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
    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 : 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
    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 : 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
    <?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 Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  6. #6
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    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!

  7. #7
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par manuscle Voir le message
    Dans ta vue il te manque la balise <form> juste pour info.
    Oups !
    Corrigé !
    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
    <?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 :
    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 Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  8. #8
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    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!

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Donc le problème viendrait de la façon dont j'ai géré les boutons dans la page Accueiletudiant ?
    Code phtml : 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
    <?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 Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  10. #10
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    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 Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  11. #11
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    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!

  12. #12
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Je trouve ça plus joli les boutons !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  13. #13
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    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!

  14. #14
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    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 Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formulaire à l'ouverture de la base
    Par Boubas1 dans le forum IHM
    Réponses: 13
    Dernier message: 10/06/2007, 19h29
  2. [Formulaire][00]Ouverture Fermeture formulaire
    Par ThieBEN dans le forum IHM
    Réponses: 2
    Dernier message: 06/06/2007, 09h51
  3. Remplir les contrôles d'un formulaire à son ouverture
    Par nunurs83 dans le forum VBA Access
    Réponses: 9
    Dernier message: 25/05/2007, 10h26
  4. Préciser la position d'un formulaire à l'ouverture?
    Par Jean_Benoit dans le forum IHM
    Réponses: 6
    Dernier message: 06/03/2007, 10h18
  5. Réponses: 18
    Dernier message: 29/01/2007, 16h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo