Bonjour,
Souhaitant personnaliser esthétiquement mon formulaire, j'ai voulu insérer du code HTML à l'intérieur ce qui n'est pas une mince à faire.
Pour ce faire j'ai utilisé le helper 'formNote' comme conseillé par diverses personnes sur le net :
Ensuite j'ai un formulaire ou j'utilise ce helper pour ajouter du code html (ici un spacer par exemple après un label et un champs email )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 //Dans \library\My\Form\Element\Html.php class My_Form_Element_Html extends Zend_Form_Element_Xhtml { // On utilise l'aide de vue formNote public $helper = 'formNote'; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 // Dans application\forms\Login.php class Form_Login extends Zend_Form { public function __construct($options = null) { parent::__construct($options); $this->setName('login'); $spacer = new My_Form_Element_Html("spacer") ; $spacer->addDecorators(array( 'ViewHelper', array('HtmlTag', array('tag' => 'div', 'class' => 'spacer')) )); $spacer->removeDecorator('label'); $email = new Zend_Form_Element_Text("emailLog",array('size' => 25)); $email ->setLabel('E-mail *') ->setRequired(false) ->addFilter('StringTrim') ->addFilter('StripTags') //->addValidator('NotEmpty', true , array('messages' => array('isEmpty' => 'Vide'))) ->addValidator('EmailAddress'); $this->addElements(array($email,$spacer)); } }Bon tout fonctionne correctement ; Voici le code qui est généré par par Mozilla Firefox (firebug) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 //Dans la vue $formLogin = new Form_Login(); $this->view->login = $formLogin;
Par contre quand je regarde le code via IE developper Toolbar j'ai ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <form id="login" enctype="application/x-www-form-urlencoded" action="" method="post"> <dl class="zend_form"> <input name="form" value="formLog" id="formLog" type="hidden"> <dt id="emailLog-label"><label for="emailLog" class="optional">E-mail *</label></dt> <dd id="emailLog-element"> <input name="emailLog" id="emailLog" value="" size="25" type="text"></dd> <div class="spacer"> </div> </form>
Voilà je ne trouve pas de solution à ce problème !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 //Le spacer est dans le dd et non après <form id="login" enctype="application/x-www-form-urlencoded" action="" method="post"><dl class="zend_form"> <input name="form" value="formLog" id="formLog" type="hidden"> <dt id="emailLog-label"><label for="emailLog" class="optional">E-mail *</label></dt> <dd id="emailLog-element"> <input name="emailLog" id="emailLog" value="" size="25" type="text"> <div class="spacer"> </div> </dd> </form>
Si quelqu'un a déja eu ce problème ou alors une meilleure façon d'ajouter du HTML dans un formulaire ce serais sympa de m'en faire part.
En vous remerçiant.
Partager