Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 01-06-2012 09:44:50

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

problème avec zend_form_element_multicheckbox

Bonjour,
J'ai crée un formulaire zend form pour l'ajout des utilisateurs dans la table
 

Code:

`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`)
)

,parmi les éléments de ce formulaire :  zend_form_element_multicheckbox que j'alimente par des données provenant de la table groupe(id_groupe,groupe_nom,niveau_acces)  comme suit:

Code:

$groupe = new Zend_Form_Element_MultiCheckbox('groupe');
                $groupe->setLabel('Groups')
                       ->setRegisterInArrayValidator(false);
                      
               
                $groupe_entite = new  Application_Model_DbTable_Groupe();
                $groupeRows = $groupe_entite->fetchAll();
                foreach ($groupeRows as $groupeRow )
                {
                $groupe->addMultiOption($groupeRow->id_groupe,$groupeRow->groupe_nom);
                }

dans mon controleur je récupère la valeur de ce champ:

Code:

$groupe= $form->getValue('groupe');

aprés validation et ajout dans la table utilisateur,on constate que le champs groupe prend comme valeur 'Array' pas la valeur checked.
S'il vous plait,pouvez vous m'aider?
Merci.

Hors ligne

 

#2 01-06-2012 12:27:50

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

Re: problème avec zend_form_element_multicheckbox

La réponse:
               aprés récupération de la valeur du champ groupe
     

Code:

$groupe= $form->getValue('groupe');

Il faut un foreach.

Hors ligne

 

#3 02-06-2012 09:33:33

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

Re: problème avec zend_form_element_multicheckbox

aziza_1989 a écrit:

La réponse:
               aprés récupération de la valeur du champ groupe dans mon controleur:

Code:

$groupe= $form->getValue('groupe');

Il faut un foreach.
oubien plus simplement faire:

Code:

$groupe= implode(' ; ',$form->getValue('groupe'));

et pour retrouver notre array on utilise un explode lors de la récupération de données de la bd dans mon cas j'ai mis un explode dans la methode getUtilisateur de mon model comme suit :
<?php

class Application_Model_DbTable_Utilisateur extends Zend_Db_Table_Abstract
{

    protected $_name = 'utilisateur';
   

        public function getUtilisateur($id)
        {
            $id = (int)$id;
            $row = $this->fetchRow('id = ' . $id);
            if (!$row) {
                throw new Exception("Could not find row $id");
            }
            $row =$row->toArray();
            $groupe = new Application_Model_DbTable_Groupe();
            $count=$groupe->countGroupe();

            $row['groupe']=explode(' ; ',$row['groupe'],$count);

            return $row;
        }
//....}

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