Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 13-06-2008 14:32:51

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

[Résolu] Zend_Form : Afficher du html dans une form ?

Bonjour,

J'ai un formulaire standard avec des éléments, décorateurs. Je souhaiterai afficher du HTML pure (contenant des boutons, input, label) à la fin de mon formulaire. Grosso modo, il me faudrait un élément qui affiche du html sans effectuer aucun traitement dessus, et qui le place à une position donné (à priori dans ce cas précis, ça doit-être à la fin).

Du coup, si vous ne voyez pas de meilleure solution, je vais créer un élément qui prend du html et qui affiche du html sans aucun traitement (wouaaaa smile).

[EDIT]
Je voudrais mettre mon html ici

Code:

<form>
<table>
.....
.....
</table>
--> ICI <--
</form>

[/EDIT]
Merci

PS: je n'ai pas le temps de faire ça proprement, c'est à dire passer le html dans un formulaire approprié, car en plus, je dois créer les éléments en dynamique !!!! Solution laparesse!

Dernière modification par whitespirit (16-06-2008 09:26:01)

Hors ligne

 

#2 13-06-2008 21:06:46

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu] Zend_Form : Afficher du html dans une form ?

En Bidouillant les éléments et les décorateurs, ça devrait se faire facilement:
Le principe à suivre c'est de créer un éléments quelconque et d'enlever le décorateur ViewHelper qui gère l'affichage de input, select,... pour ne laisser qu'un élement HtmlTag de ton choix pour afficher par exemple le champ Description ou Label. C'est de la bidouille ça smile
Sinon tu peux créer un Zend_Form_Element_Blabla de ton choix en l'ajoutant à ton form. C'est une solution peut être plus élégante, mais peut être aussi un peu plus longue à implémenter (peut être big_smile ).

Hors ligne

 

#3 14-06-2008 09:24:21

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: [Résolu] Zend_Form : Afficher du html dans une form ?

Ca va être plus compliqué que prévu, j'avais oublié que je créé de cette façon la form :

Code:

    $this->setDecorators(array('FormElements', array('HtmlTag', array('tag' => 'table', 'class'=>'form_tab', 'cellpadding'=>"0", 'cellspacing'=>"1")), 'Form'));

Du coup le code ajouté <form...><table>....</table></form> est lié à cette ligne... Ben je crois que je serai obligé de chercher la solution vers de nouveaux Zend_Form_Element et blablabla... Pas motivé !!!

Dernière modification par whitespirit (14-06-2008 18:11:35)

Hors ligne

 

#4 14-06-2008 18:15:55

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: [Résolu] Zend_Form : Afficher du html dans une form ?

En fait, je ne m'en sors pas... Je ne trouve pas de solutions. Le problème est que le décorateur du formulaire à pour but d'encadrer la <form> </form> par <form> <table> ... </table> </form>. Hors, le principe du décorateur est d'envelopper un élément alors que ce que je souhaite c'est d'ajouter un élément à la suite de <table>.

Peut-être qu'une solution simple existe et que je m'embrouille ?

Hors ligne

 

#5 14-06-2008 18:32:38

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu] Zend_Form : Afficher du html dans une form ?

A quoi ca va te servir?
As tu vraiment besoin d'ajouter du contenu obligatoirement dans le form alors que ce n'est pas pour de la récupération d'informations (input, select, etc...) ?
- C'est une histoire de mise en forme? Tu ne pourrais pas coller tout simplement un tableau au dessus et arranger la mise en forme via les css?
- C'est pour du javascript?

Hors ligne

 

#6 14-06-2008 21:50:34

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: [Résolu] Zend_Form : Afficher du html dans une form ?

En fait, je me suis fait des formulaires génériques et une table Mysql est associé à un formulaire. Dans certains cas, je dois regrouper deux tables dans un formulaire comme c'est le cas pour une table facture et facture_ligne. Donc pour ce cas, j'affiche le formulaire générique et le formulaire pour facture_ligne. Tout doit-être dans la même form car lorsque je créer une nouvelle facture, je créé en même temps les facture_ligne => donc dans le même post et pour la même actionController.

C'est le pb de vouloir faire du générique, pour les cas particulier ça coince.

Hors ligne

 

#7 15-06-2008 12:11:08

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: [Résolu] Zend_Form : Afficher du html dans une form ?

je me permet d'intervenir, je pense que le problème se pose également lorsque l'on veut rajouter un éditeur de texte sur un champ texte d'un formulaire. Comment rajouter cette barre de mise en page tel que tinyMCE ?

Hors ligne

 

#8 15-06-2008 19:34:00

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu] Zend_Form : Afficher du html dans une form ?

Un javascript devrait pouvoiir être "lancé" à tout moment, et donc de n'importe quel endroit au niveau du code.

Hors ligne

 

#9 16-06-2008 01:08:13

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: [Résolu] Zend_Form : Afficher du html dans une form ?

Je suis d'accord mais c'est plus une question de mise en page.
On construit le formulaire avec Zend_Form, on l'affiche ensuite dans la vue en fesant par exemple:

Code:

<?php echo $this->form ; ?>

Comment faire pour rajouter une barre d'outils en plein milieu du formulaire?

On peut également se poser la question si l'on veut insérer des commentaires ou des aides à l'utilisateur pour qu'il remplisse correctement le formulaire.

Dernière modification par slaughter (16-06-2008 01:09:29)

Hors ligne

 

#10 16-06-2008 09:25:02

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: [Résolu] Zend_Form : Afficher du html dans une form ?

Bon, j'ai résolu mon problème après une longue méditation ce week. La solution va vous paraitre stupide mais dans mon cas elle fonctionne. D'ailleurs j'ai honte quelle fonctionne car, c'est vraiment nul!

J'ai créer un élément eltHTML et un décorateur que j'ai nommé HtmlDisplay ! En gros j'écris mon html dans le label (via un setLabel) d'un élément et le décorateur ne récupère que ce Label et fait un magnifique et majestueux

Code:

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

        $label     = $element->getLabel();        
         return eval($label);
    }
}

Vous remarquerez que la fonction eval($label) va prendre tout le html/javascript/php contenu dans $label et l'exécuter! Plus moche que ça, faut le faire non ? Quoi que.... Ca pourra t'aider Slaughter pour ajouter du javascript! J'avais honte de le dire, mais c'est comme ça que je procède jusqu'à présent!

Dernière modification par whitespirit (16-06-2008 09:27:10)

Hors ligne

 

#11 16-06-2008 09:43:47

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu] Zend_Form : Afficher du html dans une form ?

Tout comme les CSS, du code Javascript ne devrait pas être perdu au milieu d'HTML.
Si la notion de programmation non intruisive ne vous dit rien, je vous conseille de lire cette article et les 4  autres qui le suivent: http://www.pompage.net/pompe/javascript … hapitre-1/

Hors ligne

 

#12 16-06-2008 16:01:07

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: [Résolu] Zend_Form : Afficher du html dans une form ?

Je pense également que le code CSS et JS doit être bien séparé du reste du code de la page.

Personnelement, mon problème se situe simplement dan l'ajout du menu (donc du HTML) dans le formulaire créé par le Zend_form. Cependant, d'après ce que j'ai compris du dernier post de Whitespirit, cela doit être possible par la création d'un nouveau décorateur. Je n'y connait rien du tout de ce coté là. Je vais y jeter un coup d'oeil.

Hors ligne

 

#13 16-06-2008 16:04:32

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu] Zend_Form : Afficher du html dans une form ?

Voilà ce que j'en pense:
Ton menu ne sera utilisable uniquement via Javascript, donc si le javascript n'est pas activé, ton menu ne sert à rien.
Conclusion: rajouter le menu en le générant via Javascript!
Tout ce qui su'utilise uniquement via Javascript se doit d'être "inséré" via Javascript.

Hors ligne

 

#14 17-06-2008 07:29:04

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: [Résolu] Zend_Form : Afficher du html dans une form ?

Juste pour préciser, je ne mélange pas le JS dans le HTML, mais je construit dynamiquement certains formulaires en php (du coup, je suis obligé de faire un eval). Par contre, je mélange du javascript pour avoir un calendrier dans mes dates (j'utilise JSCalendar et après chaque input text je dois écrire un petit script js pour paramétrer le calendrier. Voilà, la solution que j'ai trouvé!

Pour ton histoire de menu, je me sers de mon élément HTML pour mélanger des formulaires Zend_Form et du html (aussi des input pour mon formulaire). Je n'ai pas le temps de créer toutes mes routines pour passer par zend_form et si je dois faire des forms plus compliquer, zend_form devient trop complexe.

Bref, tous les chemins mènent au rhum !

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