Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 07-11-2008 10:56:43

fredouille312
Membre
Date d'inscription: 04-11-2008
Messages: 35

Zend_Form Ajouter <th>...</th> au début d'un tableau

Bonjour à tous,
J'ai créé mon formulaire que j'ai encapsulé dans un tableau (<table>) à l'aide de décorateurs. Maintenant, j'aimerais pouvoir lui ajouter une ligne d'en-tête(<tr><th>...</th><th>...</th></tr>). J'arrive à la créer "en dur" dans ma vue mais je suis sûr que ça peut se faire avec le décorateur du formulaire. Le seul problème, c'est que je ne trouve pas comment.
Merci à ceux qui auraient une solutions.

Hors ligne

 

#2 07-11-2008 11:06:54

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

Re: Zend_Form Ajouter <th>...</th> au début d'un tableau

Un formulaire en capsuler dans un tableau ???
Pas bien !! Tu n'as pas le droit. <table> ne peut pas contenir de balises <form> et les balises <form> ne peuvent pas contenir de balises <tr>.

Tu devrais revoir ta logique sémantique


----
Gruiiik !

Hors ligne

 

#3 07-11-2008 11:13:01

fredouille312
Membre
Date d'inscription: 04-11-2008
Messages: 35

Re: Zend_Form Ajouter <th>...</th> au début d'un tableau

Pardon je me suis mal exprimé...
C'est bien le tableau qui est à l'intérieur du formulaire et pas l'inverse.

Code:

<form method="post" action="" enctype="application/x-www-form-urlencoded">
<table>
   <tbody>
     <tr>
     </tr>
     <tr>
     </tr>
   </tbody>
</table>
</form>

J'aimerais rajouter (avant la balise "tbody") une ligne avec mon en-tête.

Hors ligne

 

#4 07-11-2008 13:44:22

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

Re: Zend_Form Ajouter <th>...</th> au début d'un tableau

Pareil, t'as pas le droit de mettre de faire ca smile ca passe pas au validateur.
T'as déjà pensé à faire un formulaire sans tableau ??

Mais sinon, pour ton soucis, mis à part faire ton propre décorateur, je ne vois pas.


----
Gruiiik !

Hors ligne

 

#5 10-11-2008 15:34:23

fredouille312
Membre
Date d'inscription: 04-11-2008
Messages: 35

Re: Zend_Form Ajouter <th>...</th> au début d'un tableau

Effectivement. Je sais pas pourquoi je me complique à vouloir faire ça avec un tableau. Et comme tu dis, ce n'est pas valide.

Hors ligne

 

#6 12-11-2008 15:18:27

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: Zend_Form Ajouter <th>...</th> au début d'un tableau

nORKy a écrit:

Pareil, t'as pas le droit de mettre de faire ca smile ca passe pas au validateur.
T'as déjà pensé à faire un formulaire sans tableau ??

Mais sinon, pour ton soucis, mis à part faire ton propre décorateur, je ne vois pas.

J'ai un peu le même problème.
Jusque là, j'utilisais moi aussi des tableaux avec mes formulaires.
Le problème est que je ne trouve pas comment obtenir ça : http://www.1001sportifs.com/index/enreg
(c'est un de mes sites développé avec ZF 1.0.3 pour un client) avec Zend_Form et sans tableau...

Dernière modification par Jean-Marc Rigade (12-11-2008 15:18:46)

Hors ligne

 

#7 12-11-2008 15:23:19

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

Re: Zend_Form Ajouter <th>...</th> au début d'un tableau

C'est du CSS la.

C'est comme le ZF, il faut travaillé smile

Globalement :
les labels gauche sont à mettre flottants, les inputs ont simplement des marges fixes smile

Il y a des tas des exemples sur le net

bon courage


----
Gruiiik !

Hors ligne

 

#8 12-11-2008 15:39:49

fredouille312
Membre
Date d'inscription: 04-11-2008
Messages: 35

Re: Zend_Form Ajouter <th>...</th> au début d'un tableau

Effectivement, il faut voir du côté des CSS (à mon avis le plus simple). Sinon, comme dirait nORKY, tu peux toujours créer ton propre décorateur.

Hors ligne

 

#9 12-11-2008 17:09:53

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: Zend_Form Ajouter <th>...</th> au début d'un tableau

nORKy a écrit:

C'est du CSS la.

C'est comme le ZF, il faut travaillé smile

Globalement :
les labels gauche sont à mettre flottants, les inputs ont simplement des marges fixes smile

Il y a des tas des exemples sur le net

bon courage

Ben dans le cas présent c'est justement pas du css.
J'ai créé mon propre decorator, dont voici un extrait :

Code:

public function render($content)
    {
        $element = $this->getElement();
        if (!$element instanceof Zend_Form_Element) {
            return $content;
        }
        if (null === $element->getView()) {
            return $content;
        }

        $separator = $this->getSeparator();
        $placement = $this->getPlacement();
        $label     = $this->buildLabel();
        $input     = $this->buildInput();
        $errors    = $this->buildErrors();
        $desc      = $this->buildDescription();

        $output = '<div class="form element">'
                . $label
                .'<span class="marge">'
                . $input
                .'</span>'
                . $errors
                . $desc
                . '</div><br/>';

        switch ($placement) {
            case (self::PREPEND):
                return $output . $separator . $content;
            case (self::APPEND):
            default:
                return $content . $separator . $output;
        }

avec un style marge : .marge {
margin-left: 25em;

Mais bon c'est pas aligné. Et la gestion des espaces entre chaque ligne, sans tableau ça devient une usine à gaz...
Moi je veux bien sans tableau, mais franchement je veux bien voir si le gain est vraiment réel...

Hors ligne

 

#10 12-11-2008 17:26:44

fredouille312
Membre
Date d'inscription: 04-11-2008
Messages: 35

Re: Zend_Form Ajouter <th>...</th> au début d'un tableau

Esseye ça.... dans un CSS

Code:

label {
      display     : block;
      float       : left;
}

ça devrait résoudre ton problème.

Hors ligne

 

#11 12-11-2008 17:42:29

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: Zend_Form Ajouter <th>...</th> au début d'un tableau

En fait avec ça le résultat peut être bon :

Code:

#form01 label
{
    display: block;
    width: 39%;
    float: left;
    padding-right: 1%;
    text-align: right;
    letter-spacing: 1px;
}

Mon seul problème à présent est comment ajout un ID ou une class à ma form ?
Dans mon décorator je peur changer le style des élément mais pas de la form elle même...

Dernière modification par Jean-Marc Rigade (12-11-2008 17:42:47)

Hors ligne

 

#12 12-11-2008 17:56:10

fredouille312
Membre
Date d'inscription: 04-11-2008
Messages: 35

Re: Zend_Form Ajouter <th>...</th> au début d'un tableau

Code:

    
$form->setDecorators(array
    ‘ViewHelper’,
    ‘Description’,
    ‘Errors’,
    array('class'=>'taClasse', 'id'=>'tonID'));

Je crois que qqch comme ça fonctionne.

Hors ligne

 

#13 12-11-2008 18:17:04

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: Zend_Form Ajouter <th>...</th> au début d'un tableau

Il y a plus simple et ça met bien l'ID dans la balise form :
$form->setAttrib('id','form01');

Il me reste maintenant à avoir un petit espace entre chaque ligne...

En réalité il me reste un problème sur la form : dans le html généré j'ai :
<dl class="zend_form">
juste après la balise <form> et avant les champs et je suis incapable de l'empêcher ni de déterminer à quel moment c'est généré...

Hors ligne

 

#14 12-11-2008 19:38:01

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: Zend_Form Ajouter <th>...</th> au début d'un tableau

Le formulaire est impec sauf une chose,
je ne parviens pas à mettre les deux boutons 'Envoyer' et 'Effacer' cote à cote...
Je ne veux pas que les champs qui précèdent soient affectés...
J'ai créé un displaygroup :

Code:

$form->addDisplayGroup(array('creation','effacer'),'login',array('displayGroupClass'=> 'Decorator_Displaygroup'));

en créeant une classe Decorator_Displaygroup qui dérive de Zend_Form_DisplayGroup
mais je bloque à ce niveau car mêm en faisant :
$login = $form->getDisplayGroup('login');
je ne parviens pas à utiliser $login pour mettre un décorateur personnalisé...

Bref, j'ai perdu un temps fou la dessus...

Dernière modification par Jean-Marc Rigade (12-11-2008 22:33:08)

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