Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'essaye de faire une checkbox en utilisant en utilisant une class qui étend zend_form, et j'ai un joli message d'erreur qui dit :
Catchable fatal error: Argument 4 passed to Zend_View_Helper_FormCheckbox::formCheckbox() must be an array, string given
Voici mes fichiers:
$statut = new Zend_Form_Element_Checkbox('statut'); $statut->setLabel('Statut') $this->addElements(array($statut); $this->setDecorators(array(array('ViewScript', array('viewScript' => '/index/registerform.phtml'))));
mon fichier registerform ressemble à ça:
<form action="<?= $this->escape($this->element->getAction()) ?>" method="<?= $this->escape($this->element->getMethod()) ?>" id="myform"> <fieldset> <legend><?php echo $this->translate($this->titreForm); ?></legend> <ul class="formRegister"> <?php foreach ($this->element as $element): ?> <li> <span> <?php echo $this->formLabel($element->getName(), $this->translate($element->getLabel())) ?> <?php echo $element->renderDescription() ?> </span> <?php if ($element->getName() == "recaptcha"): ?> <?php echo $element->render(); ?> <?php else: ?> <?php echo $this->{$element->helper}( $element->getName(), $element->getValue(), $element->getAttribs(), (method_exists($element, 'getMultiOptions')) ? $element->getMultiOptions() : '' ) ?> <?php endif; ?> <?php echo $this->formErrors($element->getMessages()) ?> </li> <?php endforeach; ?> </ul> <p><input type="submit" id='submit' value="<?php echo $this->translate('Register'); ?>" /></p> </fieldset> </form>
merci à vous
Levan
Hors ligne
J'ai résolu mon pb par contre une autre petite question il n'est pas possible de mettre des accents dans les le label?
ex: $var->setLabel('téléphone);
Hors ligne
Les accents sont autorisés, tout dépend de ton encodage.
Hors ligne
Ok merci.
Par contre concernant mon problème de checkbox je pensais avoir trouvé mais non ca bug encore
Y a t-il un paramètre à rajouter?
Hors ligne
En fait mon problème vient de mon registerform.phtml mais je ne comprends pas pourquoi.
Si je ne mets pas dans ma class de formulaire
$this->setDecorators(array(array('ViewScript', array('viewScript' => '/index/registerform.phtml'));
J'obtiens un affichage brut mais tout marche.
A votre avis quel est le problème du décorateur?
Dernière modification par Levan (05-11-2010 17:18:40)
Hors ligne
Pourtant le message d'erreur est bien clair:
Catchable fatal error: Argument 4 passed to Zend_View_Helper_FormCheckbox::formCheckbox() must be an array, string given
en français:
Catchable erreur fatale: L'argument 4 passés à
Zend_View_Helper_FormCheckbox:: formCheckbox () doit être un tableau, une chaîne
donnée
Dans ta boucle où tu affiches tes éléments, tu tentes d'appeler cette méthode avec comme 4ème paramètre un String alors que la méthode demande un tableau.
Hors ligne
Il est vrai que sur ce coup la j'ai pas beaucoup réfléchi
Merci pour la réponse
Hors ligne