Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 31-05-2012 11:52:55

aziza_1989
Membre
Date d'inscription: 31-05-2012
Messages: 58

problème d'affichage de formulaire de modification

Bonjour,
Je suis entrain de réaliser la méthode editAction pour la modification d'un utilisateur.
voilà le code de l'action edit dans mon controleur Utilisateur:

public function editAction()
    {
        $this->_helper->layout->disableLayout();

        $form = new Application_Form_AjoutUser;
        $form->submit->setLabel('Save');
        $this->view->form = $form;

        if ($this->getRequest()->isPost())
        {
                $formData = $this->getRequest()->getPost();
                if ($form->isValid($formData)) {
                    $id = (int)$form->getValue('id');
                    $nom = $form->getValue('nom');
                    $genre= $form->getValue('genre');
                    $username = $form->getValue('username');
                    $password=  md5($form->getValue('password'));
                    $email= $form->getValue('email');
                    $tel = $form->getValue('tel');
                    $societe = $form->getValue('societe');
                    $position = $form->getValue('position');
                    $type_user= $form->getValue('type_user');
                    $group= $form->getValue('groups');
                    $active = $form->getValue('active');
                    $date = $form->getValue('date');
                    $utilisateur = new Application_Model_DbTable_Utilisateur();
                    $utilisateur->updateUtilisateur($id,$nom,$genre,$username,$password,$email,$tel,$societe,$position,$group,$active,$date);
                    $this->_helper->redirector('index');
                } else {
                $form->populate($formData);
                }
        } else
        {
        $id = $this->_getParam('id', 0);
        if (id  > 0) {
        $utilisateur = new Application_Model_DbTable_Utilisateur();
        $form->populate($utilisateur->getUtilisateur($id));
        }
        }
    }

voilà la foction updateUtilisateur dans mon model Utilisateur:
public function updateUtilisateur($utilisateur_id,$utilisateur_nom,$utilisateur_genre,$utilisateur_login,$utilisateur_password,$utilisateur_email,$utilisateur_tel,$utilisateur_societe,$utilisateur_positionnement,$groupe,$utilisateur_active,$date)
        {
            $data = array(
            'utilisateur_nom' => $utilisateur_nom,   
            'utilisateur_genre' =>$utilisateur_genre,
            'utilisateur_login' =>$utilisateur_login,
            'utilisateur_password' =>$utilisateur_password,
            'utilisateur_email' =>$utilisateur_email,
            'utilisateur_tel' =>$utilisateur_tel,
            'utilisateur_societe' =>$utilisateur_societe,
            'utilisateur_positionnement' =>$utilisateur_positionnement,
            'groupe' =>$groupe,
            'utilisateur_active'=>$utilisateur_active,
            'date_enregistrement'=>$date
            );

            $this->update($data, 'utilisateur_id  = '. (int)$utilisateur_id );
        }


voilà mon formulaire:

class Application_Form_AjoutUser extends Zend_Form
{

    public function init()
   $this->setName('ajout-user');
       
        $id = new Zend_Form_Element_Hidden('id');
        $id->addFilter('Int');
       
        $nom = new Zend_Form_Element_Text('nom');
        $nom->setLabel('Nom')
                ->setRequired(true)
                ->addFilter('StripTags')
                ->addFilter('StringTrim')
                ->addValidator('NotEmpty');

            $genre =new Zend_Form_Element_Select('genre');
                $genre ->setMultiOptions(array('Melle'=>Melle,'Mme'=>Mme,'Mr'=>Mr))
                   ->setLabel('Genre');
       
       
        $username = new Zend_Form_Element_Text('username');
        $username->setLabel('Username')
                        ->setRequired(true)
                       ->addFilter('StripTags')
                        ->addFilter('StringTrim')
                       ->addValidator('NotEmpty');
        $username->class="form_input";
       
        $password = new Zend_Form_Element_Password('password');
         $password->setLabel('Password  ')
                           ->setRequired(true)
                           ->addFilter('StripTags')
                               ->addFilter('StringTrim')
                           ->addValidator('NotEmpty');
            
        $email = new Zend_Form_Element_Text('email');
        $email->setLabel('Email')
                 ->setRequired(true)
                 ->addFilter('StripTags')
                 ->addFilter('StringTrim')
                 ->addValidator('NotEmpty')
                 ->addValidator('EmailAddress');

        $tel = new Zend_Form_Element_Text('tel');
        $tel->setLabel('Tel')
             ->setRequired(true)
             ->addFilter('StripTags')
             ->addFilter('StringTrim')
             ->addValidator('NotEmpty');
        $societe = new Zend_Form_Element_Text('societe');
        $societe->setLabel('Societe')
                    ->setRequired(true)
                    ->addFilter('StripTags')
                    ->addFilter('StringTrim')
                    ->addValidator('NotEmpty');
       
        $position = new Zend_Form_Element_Text('position');
        $position->setLabel('Positionnement')
        ->setRequired(true)
        ->addFilter('StripTags')
        ->addFilter('StringTrim')
        ->addValidator('NotEmpty');
   

           
                    $group = new Zend_Form_Element_MultiCheckbox('groups');
                $group->setLabel('Groups');
               
                $groups = new  Application_Model_DbTable_Groupe();
                $groupsRows = $groups->fetchAll();
                foreach ($groupsRows as $groupsRow )
                {
                $group->addMultiOption($groupsRow->groupe_nom,$groupsRow->groupe_nom);
                }
               
        $active = new Zend_Form_Element_Checkbox( 'active' );
         $active->setLabel( 'Actif' )->addFilter ( 'StripTags' )->addFilter ( 'StringTrim' )->setValue(1 );
       
       
     
       
        $date= new Zend_Form_Element_text('date');
        $date->setLabel('Date enregistrement')
        ->setRequired(true)
        ->addFilter('StripTags')
        ->addFilter('StringTrim')
        ->addValidator('NotEmpty');
       
       
        $submit = new Zend_Form_Element_Submit ( 'submit' );
        $submit->setAttrib( 'id', 'submitbutton' );

        $this->addElements(array($id,$nom,$genre,$username, $password,$email,$tel,$societe,$position,$group,$active,$date,$submit));
       
  }
mais le problème c'est que le formulaire s'affiche vide sans les données de l'utilisateur qu'on veut modifier.
S'il vous plait pouvez vous m'aider
Merci.

Dernière modification par aziza_1989 (31-05-2012 11:56:01)

Hors ligne

 

#2 31-05-2012 12:53:38

Roromix
Membre
Date d'inscription: 05-12-2011
Messages: 55

Re: problème d'affichage de formulaire de modification

Normal si les champs que tu récupères en base ne se nomment pas comme les champs de ton formulaire.

Exemple: utilisateur_genre <=> genre

Il faut que tu fasse un petit traitement avant de faire ton $form->populate();

Hors ligne

 

#3 31-05-2012 14:10:58

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: problème d'affichage de formulaire de modification

Par contre qu'est ce que ce sujet fait dans la partie dédiée aux emplois ... ?

Hors ligne

 

#4 31-05-2012 14:16:08

aziza_1989
Membre
Date d'inscription: 31-05-2012
Messages: 58

Re: problème d'affichage de formulaire de modification

Roromix a écrit:

Normal si les champs que tu récupères en base ne se nomment pas comme les champs de ton formulaire.

Exemple: utilisateur_genre <=> genre

Il faut que tu fasse un petit traitement avant de faire ton $form->populate();

Merci bien .Le formulaire s'affiche avec les données à modifier mais quand je clique save il me donne cette ereur:
Data truncated for column 'active' at row 1 .Avez vous une idée sur l'origine de cette erreur,sachant que le champs active est de type int ,et dans le formulaire c'est un checkbox qui a comme valeur par defaut 0?

Dernière modification par aziza_1989 (31-05-2012 16:10:18)

Hors ligne

 

#5 31-05-2012 16:23:47

aziza_1989
Membre
Date d'inscription: 31-05-2012
Messages: 58

Re: problème d'affichage de formulaire de modification

Orkin a écrit:

Par contre qu'est ce que ce sujet fait dans la partie dédiée aux emplois ... ?

Pardon ,excusez moi s'il vous plait parce que je m'étais très préssée et je n'ai pas fait attention juste j'ai vu nouvelle discussion .Je veux la supprimer d'ici mais elle comporte un réponse précieuse que je n'ai pas trouvée dans les docs que j'ai consultés jusqu'à présent.
Merci à vous tous.

Hors ligne

 

#6 31-05-2012 17:33:26

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: problème d'affichage de formulaire de modification

aziza_1989 a écrit:

Pardon ,excusez moi s'il vous plait parce que je m'étais très pressée et je n'ai pas fait attention juste j'ai vu nouvelle discussion .Je veux la supprimer d'ici mais elle comporte un réponse précieuse que je n'ai pas trouvée dans les docs que j'ai consultés jusqu'à présent.
Merci à vous tous.

C'est pas grave ça arrive à tout le monde smile. Mais se presser pour demander de l'aide n'a en général rien de bon ... Essai seulement de relire tes 2 derniers messages, on y comprend quasiment rien.

Et je persiste à dire qu'une demande d'aide mal formulée ou difficile à comprendre aura plus de difficulté à trouver réponse qu'une demande posée, relue et compréhensible. D'autant plus lorsque c'est dans une mauvaise section. On a beaucoup de bots qui s'inscrivent et posent des messages et c'est avec ce genre de "comportement" que tu pourrais être confondue avec un bot.

Pour ton problème essai de passer le change à tinyint, je doute que ça change grand chose mais pour un boolean c'est mieux.

Hors ligne

 

#7 31-05-2012 18:00:38

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: problème d'affichage de formulaire de modification

J'ai déplacé le sujet dans une catégorie plus adapté !

Hors ligne

 

#8 31-05-2012 19:12:35

aziza_1989
Membre
Date d'inscription: 31-05-2012
Messages: 58

Re: problème d'affichage de formulaire de modification

Orkin a écrit:

aziza_1989 a écrit:

Pardon ,excusez moi s'il vous plait parce que je m'étais très pressée et je n'ai pas fait attention juste j'ai vu nouvelle discussion .Je veux la supprimer d'ici mais elle comporte un réponse précieuse que je n'ai pas trouvée dans les docs que j'ai consultés jusqu'à présent.
Merci à vous tous.

C'est pas grave ça arrive à tout le monde smile. Mais se presser pour demander de l'aide n'a en général rien de bon ... Essai seulement de relire tes 2 derniers messages, on y comprend quasiment rien.

Et je persiste à dire qu'une demande d'aide mal formulée ou difficile à comprendre aura plus de difficulté à trouver réponse qu'une demande posée, relue et compréhensible. D'autant plus lorsque c'est dans une mauvaise section. On a beaucoup de bots qui s'inscrivent et posent des messages et c'est avec ce genre de "comportement" que tu pourrais être confondue avec un bot.

Pour ton problème essai de passer le change à tinyint, je doute que ça change grand chose mais pour un boolean c'est mieux.

ce que je n'ai pas pu comprendre pourquoi quand je fais l'ajout il ne me donne pas cette erreur ,mais quand je fait la modification je reçois cette erreur sachant qu'on appel au meme formulaire pour l'ajout(formulaire vide à remplir) et pour la modification(formulaire rempli pour le modifie).

Hors ligne

 

#9 01-06-2012 18:07:21

aziza_1989
Membre
Date d'inscription: 31-05-2012
Messages: 58

Re: problème d'affichage de formulaire de modification

aziza_1989 a écrit:

Orkin a écrit:

aziza_1989 a écrit:

Pardon ,excusez moi s'il vous plait parce que je m'étais très pressée et je n'ai pas fait attention juste j'ai vu nouvelle discussion .Je veux la supprimer d'ici mais elle comporte un réponse précieuse que je n'ai pas trouvée dans les docs que j'ai consultés jusqu'à présent.
Merci à vous tous.

C'est pas grave ça arrive à tout le monde smile. Mais se presser pour demander de l'aide n'a en général rien de bon ... Essai seulement de relire tes 2 derniers messages, on y comprend quasiment rien.

Et je persiste à dire qu'une demande d'aide mal formulée ou difficile à comprendre aura plus de difficulté à trouver réponse qu'une demande posée, relue et compréhensible. D'autant plus lorsque c'est dans une mauvaise section. On a beaucoup de bots qui s'inscrivent et posent des messages et c'est avec ce genre de "comportement" que tu pourrais être confondue avec un bot.

Pour ton problème essai de passer le change à tinyint, je doute que ça change grand chose mais pour un boolean c'est mieux.

J'ai essayé avec tinyint mais le problème réside.
ce que je n'ai pas pu comprendre pourquoi quand je fais l'ajout il ne me donne pas cette erreur ,mais quand je fait la modification je reçois cette erreur sachant qu'on appel au meme formulaire pour l'ajout(formulaire vide à remplir) et pour la modification(formulaire rempli pour le modifie).

S'il vous plait pouvez vous m'aider?

Hors ligne

 

#10 03-06-2012 18:52:47

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: problème d'affichage de formulaire de modification

Je suis désolé mais je comprend rien à ton problème et tu ne fais pas l'effort de te relire pour que ça le soit ...

Donc je te donne une piste mais si tu ne fais pas d'effort je n'insisterais pas.

As-tu fais une recherche google avec ton erreur ? En faisant une recherche sur "Data truncated for column at row" j'ai trouvé plusieurs éléments de réponse :
- La valeur que tu veux enregistrer est trop grande pour le format indiqué en BDD donc le serveur mysql remonte une erreur
- Problème de type de champ en base de données essai de faire un var_dump sur la variable qui pose problème, un intval (pour voir si c'est pas un problème de conversion etc ...). Pour moi le problème vient de là et c'est ce cas qui semble le plus probable.
- Tu enregistres sans préciser de valeur par défaut du coup tu enregistres des données incomplètes.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages