Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je rencontre aujourd'hui un nouveau problème.
J'aimerais par le moyen le plus simple possible, faire en sorte que la balise <p class="description">...</p> de mes champs ne soit pas dans la balise <dd> mais juste après.
Je souhaite l'utiliser pour afficher une aide à la saisi juste à droite de chaque champs. Parcontre j'aimerais que toutes mes aides soient alignées verticalement. Or, comme mes champs ont une taille variable, ces aides ne sont pas alignées. En la sortant, je pourrais donner une taille fixe à mon <dd> et ainsi tout serait nikel.
Voici le code généré :
<dt id="last_name-label"><label for="last_name" class="required">Nom de famille <em>*</em></label></dt>
<dd id="last_name-element">
<input type="text" name="last_name" id="last_name" value="" class="required" maxlength="40" />
<p class="description">Saisir 40 caractères maximum</p>
</dd>
Peut-être qu'un autre moyen plus simple est d'entourer l'input d'une balise supplémentaire, à laquelle je pourrais donner une taille fixe pour tous mes champs (exemple : label) ?
Oui mais comment faire, sans pour autant m'écrire un décorator complexe ?
Merci d'avance
Hors ligne
Yop ,
moi j'ai créer un décorateur .. ^^ et ca marche bien
Class MyLib_Form extends Zend_Form { public static $elementDecorators = array( 'ViewHelper', 'Errors', array('Description', array('tag' => 'span', 'class' => 'elementDescription')), array(array('data' => 'HtmlTag'), array('tag' => 'span', 'class' => 'elementInput')), array('Label', array('tag' => 'span', 'class' => 'elementLabel')), array(array('row' => 'HtmlTag'), array('tag' => 'span', 'class' => 'elementForm')), ); }
après t'a plus qu'à appliquer ce décorateur à ton élément
en appelant le tableau de decorateur :
$nom = new Zend_Form_Element_Text('nom'); $nom->setLabel('Nom :') ->setDecorators(MyLib_Form::$elementDecorators);
Et le tour est joué
@++
Phil
Dernière modification par Phil (14-08-2009 15:29:14)
Hors ligne
Tu peux me montrer le code que ca te génère au final s'il te plait ?
Hors ligne
<span class="elementForm"><span id="nom-label"><label for="nom" class="elementLabel optional">Nom :</label></span> <span class="elementInput"> <input type="text" name="nom" id="nom" value="2"></span></span>
Voilà 'msieur
Dernière modification par Phil (14-08-2009 16:29:09)
Hors ligne
T'as pris pile un exemple sans description. Avec une description, ca donnerait quoi ?
Hors ligne
Up (j'étais en vacances :p), dans ton exemple pas de description. Avec une description, ça te donnerait quoi ?
Hors ligne