Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 08-02-2010 16:15:30

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

[Zend_Form] Comment aligner plusieurs boutton radio

Bonjour,

Je n'arrive pas à aligner plusieurs bouton radio sur une même ligne.
J'ai réussi a modifier mes décorateur pour avoir un affichage via une table mais en revanche je ne vois pas comment changer le 'label' pour les multioptions d'un bouton radio.
Voici le code HTML que cela génère :

Code:

<form id="errorreporting" enctype="application/x-www-form-urlencoded" action="" method="post"><table>
<tr>
  <td><label for="email" style="width:100px" class="required">E-MAIL:</label></td>
  <td><input type="text" name="email" id="email" value=""></td>
</tr>
<tr>
  <td><label for="type" class="required">Type :</label></td>
  <td>
     <label style="white-space: nowrap;">
     <input type="radio" name="type" id="type-0" value="0" checked="checked">TO</label>
     <label style="white-space: nowrap;">
     <input type="radio" name="type" id="type-1" value="1">CC</label>
  </td>
</tr>

<tr><td><td><input type="submit" name="submit" id="submitbutton" value="Modify"></td></td></tr>
</table>
</form>

Comment faire pour que :
<label style="white-space: nowrap;">
<input type="radio" name="type" id="type-0" value="0" checked="checked">TO</label>
<label style="white-space: nowrap;">
<input type="radio" name="type" id="type-1" value="1">CC</label>


soient cote à cote car actuellement ils sont l'un au dessus de l'autre.
Je voudrai pouvoir modifier leurs styles afin que ces labels n'aient pas de display: block ou bien la possibilité de modifier les balises pour avoir :

<input type="radio" name="type" id="type-0" value="0"><span>TO</span>
<input type="radio" name="type" id="type-1" value="1"><span>CC</span>

merci d'avance.

Hors ligne

 

#2 08-02-2010 16:35:49

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Zend_Form] Comment aligner plusieurs boutton radio

Tu l'as dit toi même, il faut modifier les styles.
Ne touche pas à tes décorateurs et modifie ta feuille de style

Mets les inline, ou bien utilise des floattants.

Dernière modification par nORKy (08-02-2010 16:36:22)


----
Gruiiik !

Hors ligne

 

#3 08-02-2010 17:17:20

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

Re: [Zend_Form] Comment aligner plusieurs boutton radio

Oui mais comment différencier :
<label for="type" class="required">Type :</label>
et
<label style="white-space: nowrap;"><input type="radio" name="type" id="type-0" value="0" checked="checked">TO</label>

car dans setDecorator je fais : array('Label', array('tag' => 'td', 'style' => 'width:100px'))
or l'attribut style n'est pas appliqué aux label des multioptions.
Comment modifier le style des label des MultiOptions des boutons radio ?
Pour rappel :

Code:

$type = new Zend_Form_Element_radio('type');
$type->setLabel('Type :')
->setMultiOptions(array('0'=>'TO', '1'=>'CC'))

Dernière modification par Aure77 (10-02-2010 11:15:03)

Hors ligne

 

#4 09-02-2010 18:23:59

emishi
Membre
Date d'inscription: 22-01-2010
Messages: 15

Re: [Zend_Form] Comment aligner plusieurs boutton radio

Bonsoir,
Si j'ai bien compris, tu veux modifier le style uniquement des labels des boutons radios (qui possèdent un attribut style) et pas les autres.
Un sélecteur css du type : elem[attr] devrait fonctionner je penser :

Code:

/* fichier.css */
label[style] {
 display:inline; /* ou float:left; à toi de voir*/
}

Bonne soirée

Hors ligne

 

#5 09-02-2010 18:50:42

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Zend_Form] Comment aligner plusieurs boutton radio


----
Gruiiik !

Hors ligne

 

#6 10-02-2010 11:14:43

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

Re: [Zend_Form] Comment aligner plusieurs boutton radio

2 remarques :
1 - <label for="email" style="width:100px" class="required">E-MAIL:</label> contient style mais ne devrait pas être pris en compte (car pas le label d'un radio).
2 - Ne fonctionne pas sous IE 6 (très important car utilisé en majorité à mon travail)!

N'y a t'il pas un moyen d'ajouter directement une classe au label devant les input type radio ?

Hors ligne

 

#7 10-02-2010 22:48:14

emishi
Membre
Date d'inscription: 22-01-2010
Messages: 15

Re: [Zend_Form] Comment aligner plusieurs boutton radio

Euh après, pour être conforme avec IE 6.0, je sais pas si le sélecteur passe effectivement.
Pour ce qui est d'ajout direct d'un attribut classe au label, je dois avouer que je ne sais pas trop (je débute sous Zend), éventuellement (pardonnez-moi si je me trompe) étendre Zend_Helper_Radio (ou quelque chose comme ça, je ne me rappelle plus trop) non ?

Après, serait peut-être temps de mettre à jour les versions d'IE, un truc que je pige pas ça hmm
C'est comme si j'appelais à l'aide sur du css car ça ne fonctionne pas bien sur mon firefox 1.0 hmm (bon après, bien sur en entreprise, c'est pas si facile que ça mais bon ...)

Bonne soirée smile

Hors ligne

 

#8 11-02-2010 10:05:41

Willmore
Membre
Lieu: Savigny Le Temple
Date d'inscription: 25-05-2009
Messages: 31

Re: [Zend_Form] Comment aligner plusieurs boutton radio

Aure77 a écrit:

N'y a t'il pas un moyen d'ajouter directement une classe au label devant les input type radio ?

Tu peux passer une option au décorateur Label de tes éléments radio :

Code:

<?php
[...]

/**
 * Déclaration d'un élément Radio
 */

$radio = new Zend_Form_Element_Radio('myRadioElement');
...
$radio->getDecorator('label')->setOption('class', 'classCSS1 classCSS2');

[...]

Le label se verra ajouter les classes CSS "classCSS1" et "classCSS2"

Dernière modification par Willmore (11-02-2010 10:06:39)


Amicalement,

Will

Hors ligne

 

#9 11-02-2010 10:39:15

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

Re: [Zend_Form] Comment aligner plusieurs boutton radio

Bonjour et merci pour vos réponse mais ce n'est pas ça...
$radio->getDecorator('label')->setOption('class', 'toto');   Modifie le label situé devant le bouton radio :

Code:

<tr>
  <td><label for="type" class="toto">Type :</label></td> // change ici
  <td>
     <label style="white-space: nowrap;"> // mais rien ici
     <input type="radio" name="type" id="type-0" value="0" checked="checked">TO</label>
     <label style="white-space: nowrap;">
     <input type="radio" name="type" id="type-1" value="1">CC</label>
  </td>
</tr>

Et pas les labels des options radios...

Hors ligne

 

#10 11-02-2010 16:32:42

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Zend_Form] Comment aligner plusieurs boutton radio

pour les labels des options radios, il faut utilisé l'attribut 'label_class' et pas 'class'


----
Gruiiik !

Hors ligne

 

#11 11-02-2010 16:45:36

Willmore
Membre
Lieu: Savigny Le Temple
Date d'inscription: 25-05-2009
Messages: 31

Re: [Zend_Form] Comment aligner plusieurs boutton radio

Pourrait-on voir de quelle façon sont définit les décorateurs ?

ça pourrait donner des indices sur la marche à suivre.


Amicalement,

Will

Hors ligne

 

#12 12-02-2010 10:03:04

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

Re: [Zend_Form] Comment aligner plusieurs boutton radio

Oui car je vois pas ou mettre ton label_class.
Car si je met : $radio->getDecorator('label')->setOption('label_class', 'toto');
ça me fait :
<td><label for="type" class="required" label_class="toto">Type :</label></td>

Hors ligne

 

#13 12-02-2010 15:19:27

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Zend_Form] Comment aligner plusieurs boutton radio

C'est dans les options de l'élément qu'il faut le mettre :

Code:

$radio->setOptions(array('label_class', => 'toto'));

----
Gruiiik !

Hors ligne

 

#14 12-02-2010 16:43:41

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

Re: [Zend_Form] Comment aligner plusieurs boutton radio

Merci ! Je confirme ça fonctionne !
Mais bon c'est pas simple quand on connait pas tongue

Dernière modification par Aure77 (12-02-2010 16:44:31)

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