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 :

formulaire de modification d'un user


Sujet :

Zend_Form PHP

  1. #1
    Membre actif
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2012
    Messages : 57
    Par défaut formulaire de modification d'un user
    Bonjour,
    Je suis entrain de réaliser la méthode editAction pour la modification d'un utilisateur.
    voilà le code de l'action edit:
    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
     
    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));
    		}
    		}
        }
    L'action updateUtilisateur dans mon model:
    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
     
    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 );
    		}
     
     
    Mon problème est que le formulaire s'affiche avec  aucune récupération des donnés qu'on veut modifier.S'il vous plait avez vous une solution.
    Merci.

  2. #2
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Je dis peut etre une betise mais qu'est ce que te renvoi getUtilisateur() ?
    Un objet Row ou un Array ?

    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form->populate($utilisateur->getUtilisateur($id)->toArray());

  3. #3
    Membre actif
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2012
    Messages : 57
    Par défaut
    Citation Envoyé par Seb33300 Voir le message
    Je dis peut etre une betise mais qu'est ce que te renvoi getUtilisateur() ?
    Un objet Row ou un Array ?

    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form->populate($utilisateur->getUtilisateur($id)->toArray());
    Malgrès cà le problème réside.
    Merci bien.

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Par défaut
    id doit être une variable

  5. #5
    Membre actif
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2012
    Messages : 57
    Par défaut
    Citation Envoyé par m4riachi Voir le message
    id doit être une variable
    Merci mais le pb réside.

  6. #6
    Membre actif
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2012
    Messages : 57
    Par défaut
    La réponse c'est que les champs récupérés de la base ne se nomment pas comme les champs du formulaire.

  7. #7
    Membre actif
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2012
    Messages : 57
    Par défaut
    Citation Envoyé par aziza_1989 Voir le message
    La réponse c'est que les champs récupérés de la base ne se nomment pas comme les champs du formulaire.
    Mais maintenant après la modification je clique sur save il me donne l'erreur suivante:SQLSTATE[01000]: Warning: 1265 Data truncated for column 'active' at row 1 .
    puvez vous m'aider?
    Merci.

  8. #8
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Peux tu nous donner la structure de la table contenant ce champs ainsi que la donnée que tu tente d'insérer ?

    Merci

  9. #9
    Membre actif
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2012
    Messages : 57
    Par défaut
    l'insertion se fait dans la table:
    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
     
    utilisateur(  `id` int(11) NOT NULL AUTO_INCREMENT,
      `nom` varchar(20) NOT NULL,
      `genre` varchar(5) NOT NULL,
      `login` varchar(56) NOT NULL,
      `password` varchar(256) NOT NULL,
      `email` varchar(50) NOT NULL,
      `tel` varchar(30) NOT NULL,
      `societe` varchar(50) CHARACTER SET utf8mb4 NOT NULL,
      `positionnement` varchar(50) CHARACTER SET utf8mb4 NOT NULL,
      `groupe` varchar(256) NOT NULL,
      `active` int(11) NOT NULL,
      `type_user` varchar(20) CHARACTER SET utf8mb4 NOT NULL,
      `date_enregistrement` datetime NOT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `login` (`login`))
    la valeur inserée est 0 ou 1 à travers une case à cocher.

    Merci bien.

  10. #10
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Vérifie ce que tu insère, car il semblerait que ça ne soit pas ça du tout.

  11. #11
    Membre actif
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2012
    Messages : 57
    Par défaut
    Citation Envoyé par 5h4rk Voir le message
    Vérifie ce que tu insère, car il semblerait que ça ne soit pas ça du tout.
    Tout à fait raison.J'avais deux ereurs:
    1/ dans l'action edit à la ligne 28 j'ai oublié de mettre la variable type_user :
    $utilisateur->updateUtilisateur($id,$nom,$genre,$username,$password,$email,$tel,$societe,$position,$group,$active,$date);

    correction:
    $utilisateur->updateUtilisateur($id,$nom,$genre,$login,$password,$email,$tel,$societe,$positionnement,$groupe, $type_user,$active,$date_enregistrement);
    2/dans la fonction update j'ai oublié aussi la variable type_user dans le prototype et dans le corps:
    public function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    updateUtilisateur($utilisateur_id,$utilisateur_nom,$utilisateur_genre,$utilisateur_login,$utilisateur_password,$utilisateur_email,$utilisateur_tel,$utilisateur_societe,$utilisateur_positionnement,$groupe,$utilisateur_active,$date)
    aprés la ligne 24 je doit ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'type_user' =>$type_user,
    correction:
    public function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    addUtilisateur($nom,$genre,$login,$password,$email,$tel,$societe,$positionnement,$groupe,$type_user,$active,$date_enregistrement)
    Merci à vous tous.

Discussions similaires

  1. formulaire de modification
    Par VIRGINIE87 dans le forum IHM
    Réponses: 7
    Dernier message: 24/01/2007, 11h04
  2. rafraichissement formulaire suite modif sous-form
    Par pontoise dans le forum IHM
    Réponses: 5
    Dernier message: 25/11/2006, 00h46
  3. Réponses: 14
    Dernier message: 19/10/2006, 15h23
  4. Formulaire et modifications
    Par climz dans le forum IHM
    Réponses: 7
    Dernier message: 24/05/2006, 09h19
  5. problème sur un formulaire de modification
    Par puppusse79 dans le forum Access
    Réponses: 13
    Dernier message: 14/04/2006, 16h48

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