IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Form PHP Discussion :

Ajouter élément type <p> [ZF 1.9]


Sujet :

Zend_Form PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 98
    Par défaut Ajouter élément type <p>
    Bonjour à tous,

    Je continu mon apprentissage du framework Zend et suis une nouvelle fois confronté à un problème pour lequel je ne trouve pas de solution.

    La chose parait simple :

    Je créé un formulaire basique
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    class Default_Form_Contact extends Zend_Form
    {
        public function init()
        {
            $this->setDisableLoadDefaultDecorators(true);
            $this->addDecorator('FormElements')
                 ->addDecorator('Form')
                 ->addDecorator('HtmlTag', array('tag'=>'div', 'class'=>'myform', 'id'=>'stylized'));
     
            $this->setMethod('post');
            $this->setAction('contact');
            $this->setAttrib('id', 'login');
            $this->setName('Contact');
            $this->addElementPrefixPath('My_Decorator',APPLICATION_PATH.'/forms/Decorator/','decorator');
     
            $translate = Zend_Registry::get('translate');
     
            $username = $this->createElement('text', 'username');
            $username->addValidator('alnum')
                     ->addErrorMessage('alnum')
                     ->addValidator('regex', false, array('/^[a-z]+/'))
                     ->addValidator('stringLength', false, array(6, 20))        
                     ->setRequired(true)
                     ->setLabel('username')
                     ->setDescription('username description')
                     ->addFilter('StringToLower');
     
            // élément mot de passe :
            $password = $this->createElement('password', 'password');
            $password->addValidator('StringLength', false, array(6))
                     ->setRequired(true)
                     ->addErrorMessage('required')     
                     ->setLabel('password')
                     ->setDescription('password description');
     
            $category = new Zend_Form_Element_Select('category');
            $category->setLabel('Category')
                     ->setRequired(true);
            $category->addMultiOption('dd','ff');
     
            $model  = new Default_Model_Contact();
            $entries = $model->fetchAll();               
            foreach ($entries as $c) {
                $category->addMultiOption($c->id, $c->name);
            }
     
     
             $submit = $this->createElement('submit', 'envoyer')
             ->setLabel('')
             ->setValue('username');
     
            // Ajout des éléments au formulaire
            $this->addElement($username)
                 ->addElement($password)
                 ->addElement($category)             
                 ->addElement($submit);
     
     
         $this->setElementDecorators(array('Composite'));
     
        }
    }
    Mais aimerai ajouter du texte après l'ajout des éléments. Par exemple : Pour consulter nos conditions de vente...

    J'affiche le formulaire dans ma vue via un simple
    Le texte à rajouter doit être (pour une question de décorateur), placé dans le form et non dans la vue.

    Une piste s'il vous plaît?

    Merci d'avance,
    Omageus

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 178
    Par défaut
    Hello,

    Pour moi ce n'est pas si évident que ce type de texte doivent être rattaché au form, mais bon...

    Si tu veux persister das ce sens, la solution que je vois est d'ajouter un décorateur perso à ton formulaire, un peu comme ça dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $this->addDecorator('FormElements')
           ->addDecorator('Form')
           ->addDecorator('FormFooter', array('tag' => 'p', 'content' => 'Tu met ton texte ici'))
           ->addDecorator('HtmlTag', array('tag'=>'div', 'class'=>'myform', 'id'=>'stylized'))
           ;
    Tu remarqueras que je me suis inspiré du fonctionnement d'un autre déco, il te reste donc plus qu'à regarder comment HtmlTag fonctionne pour t'en inspirer

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ajouter élément XML dans fichier existant DOM
    Par Hyst76 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 15/10/2007, 18h27
  2. Ajout éléments dans une zone de liste
    Par tabtab dans le forum IHM
    Réponses: 15
    Dernier message: 01/10/2007, 08h39
  3. Réponses: 4
    Dernier message: 08/08/2007, 15h27
  4. ajout éléments dans une balise select
    Par wehtam dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2005, 14h03
  5. [JDOM] Ajout élément dans fichier XML
    Par delinot dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 18/07/2005, 11h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo