Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'ai crée un formulaire zend form pour l'ajout des utilisateurs dans la table
`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:
$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:
$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
La réponse:
aprés récupération de la valeur du champ groupe
$groupe= $form->getValue('groupe');
Il faut un foreach.
Hors ligne
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
Pages: 1