Je ne comprends pas pourquoi cette case avec la valeur = 0 est vérifiée par populate()
alors qu'aucune donnée ne soit passé de cette case à cocher ...Zend_Form: équipez question sur une case avec la valeur = 0
Mon élément de formulaire:
$this->addElement('multiCheckbox', 'etoiles', array(
'filters' => array('Int'),
'separator' => '',
'label_placement' => 'prepend',
'label_class' => 'caseacocher',
'decorators' => $decorator_chain,
));
$listeEtoiles = array(
'0' =>'Sans étoiles',
'1' => '1 étoile"',
'2' => '2 étoiles',
'3' => '3 étoiles',
'4' => '4 étoiles',
'5' => '5 étoiles',
) ;
$this->getElement('etoiles')->addMultiOptions($listeEtoiles) ;
Comment puis-je remplir le formulaire dans mon contrôleur:
$this->view->searchForm->populate($this->getRequest()->getPost()) ;
Ce que je reçois quand le dumping $this->getRequest()->getPost('etoiles')
: NULL
Ce que je reçois pour ma case à cocher:
<input id="etoiles-0" type="checkbox" checked="checked" value="0" name="etoiles[]">
Je ne comprends pas. Comment est-il possible d'obtenir cette case cochée, alors qu'il n'y a AUCUNE donnée sur etoiles[]
?? J'ai juste compris que mon filtre "Int" avait quelque chose à voir avec ça. Devrais-je l'enlever? Et si je veux garder ce filtre Int?
Il n'y a pas de valideurs. Devrais-je en ajouter? Qu'en est-il du validateur InArray? Mon tableau de valeurs utilise des index de chaînes car je pensais que les données $ _POST étaient passées en chaînes. Est-ce une erreur?
Tout commentaire ou aide sera appréciée :)
Pour être honnête, c'est un copier/coller que j'ai fait juste pour illustrer mon problème. Oubliez les validateurs, il n'y a pas de validateurs. Devrais-je en ajouter? Qu'en est-il de ce validateur 'InArray'? Mon tableau de valeurs utilise des index de chaînes car je pensais que les données '$ _POST' étaient passées en chaînes. Est-ce une erreur? – LittleBigDev