2010-10-18 14 views
1

J'ai un formulaire zend qui utilise un script de vue. Je veux avoir accès aux éléments de bouton radio individuels, mais je ne suis pas sûr de savoir comment le faire. En ce moment, je les imprime tout simplement en utilisant:Modifier des boutons radio individuels dans le script de vue zendform

echo $this->element->getElement('myRadio'); 

Cela les imprime tous verticalement. J'ai besoin d'un peu plus de contrôle. Je dois être en mesure d'imprimer les 5 premières options dans une colonne puis les 5 prochaines dans une deuxième colonne.

Répondre

1

Compris aussi celui-ci. Il suffit d'utiliser

$this->element->getElment('myRadio')->getMultiOptions(); 

et il retournera un tableau des options clé/valeur.

4

J'ai le même problème. Il n'y a pas belle façon de le faire que j'ai trouvé (environ ZF 1.10.8)

Matthew Weier O'Phinney avait quelques conseils sur cette page:

http://framework.zend.com/issues/browse/ZF-2977

Mais je trouve cette approche lourde en pratique. L'affiche originale sur ce billet avait une bonne idée, et je pense qu'ils devraient en fin de compte intégrer une bonne façon de le faire dans ce sens.

Mais comme il n'y a pas de meilleur moyen pour le moment, je suis simplement la suggestion de Matthew pour le moment.

Pour ma forme, je travaillais sur, pour rendre un seul bouton radio unique en dehors du groupe, je devais le faire:

Dans ma forme classe:

$radio = new Zend_Form_Element_Radio('MYRADIO'); 
$radio->addMultiOption('OPTION1', 'Option One') 
     ->addMultiOption('OPTION2', 'Option Two'); 

$this->addElement($radio); 

En mon script de vue, juste rendre OPTION1:

echo $this->formRadio(
    $this->form->MYRADIO->getFullyQualifiedName(), 
    $this->form->MYRADIO->getValue(), 
    null, 
    array('OPTION1' => $this->form->MYRADIO->getMultiOption('OPTION1')) 
); 

qui produira une <input type="radio" /> élément, et un <label> associé. Aucun autre décorateur ne sera rendu, ce qui est pénible.

Pour votre cas, vous souhaiterez probablement afficher vos éléments radio et autres éléments à l'aide de l'assistant d'affichage ViewScript - afin de pouvoir aligner tous les éléments sur votre propre balisage de table personnalisé comme décrit.

+0

Oui, j'utilise déjà l'option ViewScript. Cela ne me dérange pas que la radio n'obtienne pas tous les autres décorateurs. C'est la raison pour laquelle j'utilise le ViewScript. Merci pour l'astuce sur l'assistant de vue Formadio. –

+0

Cela semble être la meilleure option. Cela va créer l'élément comme il se doit. Juste besoin d'être en mesure d'ajouter une classe à cela et c'est la meilleure option. – Matt