CLASSE POUR FORMULAIRE HTML : GÉNÉRATION ET RÉCUPÉRATION DES DONNÉES

Messages postés
1663
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
- - Dernière réponse : Superman_U
Messages postés
1
Date d'inscription
mercredi 22 février 2006
Statut
Membre
Dernière intervention
23 février 2006
- 23 févr. 2006 à 11:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31744-classe-pour-formulaire-html-generation-et-recuperation-des-donnees

cs_GRenard
Messages postés
1663
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1 -
WOUA Je rêve, mon nom est mentionné :P
Je n'ai pas le choix de tester le code ;), par contre j'aimerais bien un exemple d'utilisation concret parce que la vite comme ca je trouve ca un peu pêle mêle... Pourquoi ?
Normalement on met une classe par fichier, ensuite les global dans le fichier comme ca tu me diras à quoi ca sert ? Si tu fais fonctionner en PHP5, alors il faut se forcer pour que ca soit PHP5 complet, c'est à dire de mettre les mots clé public, private ou protected.
Autre commentaire, au lieu de mettre des if avec vérification de !'' ou '', utilise la fonction empty(), elle trim au besoin.

De plus, j'ai regardé les dernieres lignes du code et ya une petite erreur xhtml :
$balise .($attributs['selectionne'] 1) ? " checked='checked' />" : ">";
t'as mis /> si ya checked mais si ya pas ca se termine en > donc ... :)

Oh, et c'est quoi ceci : if($_POST == '') ?

fuckya
Messages postés
125
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
8 juin 2006
-
http://www.phpcs.com/code.aspx?ID=31025 ^^

Les fonctions pour chaque attributs cest moyen, regarde la méthode que jai utilisé ca pourra t'aider à faire un truc moins lourd et en une seule fonction :)
Samiby
Messages postés
118
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
2 janvier 2006
-
GRenard: effectivement, un oubli. Merci.
Je corrigerais en rajoutant des exemples (j'admets que là, c'est très incompréhensible).
Pour le PHP5, effectivement, je le ferai. En fait, c'est une classe au départ créée en PHP4, mais convertie pour des raisons de code (possibilité de parcourt des sous-objets d'un objet par foreach(), impossible par PHP4).

Pour Fuckya, justement, ce que je vois sur ton code, c'est ce que j'avais commencé à faire. Mais l'idée de GRenard me parait mieux : on ajoute/indique que ce que l'on veut. Mais si tu préfère, tu peux ajouter des variables dans les fonction de construction, que tu traduis dans cette fonction par :
$this->attribut("nom_de_l_option", $option_passee_en_parametre);
cs_GRenard
Messages postés
1663
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1 -
Bon encore une fois avant d'essayer je te pose quelques questions.
Une classe est si possible la plus générique possible, elle doit fonctionner partout dans tout les styles d'affichage. Donc moi si je suis en XHTML, je ne souhaiterai généralement pas avoir des <table> et/ou des <tr><td> qui traine un peu partout. Même chose pour les \t et \n que me pond la classe.
Je ne sais pas si tu comprends ce que je veux dire, mais justement c'est là la modularité de la chose. Il faut laisser à la classe que CE QU'ELLE DOIT FAIRE... Si la classe doit afficher un textarea, bien qu'elle affiche un textarea et pas de TD. Si tu veux afficher des TD, tu te fais une autre classe qui extends celle la ou tu l'écris direct dans le code mais pas comme tu as fait.
Et ces global ? y font quoi là ?

Continu à corriger ! jusqu'à temps que je test haha :)
Samiby
Messages postés
118
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
2 janvier 2006
-
Justement, j'avais pour idée de modifier ça. Je le ferais. En fait, j'avais commencé comme ça, mais pour les besoins de simplicité de programmation, j'avais fait comme cela est maintenant.
Promis, je modifie rapidement ;) . (j'en plein d'idées en ce moment)
Samiby
Messages postés
118
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
2 janvier 2006
-
Voilà, les modifications sont faites.
Cette classe n'était à la base pas comme les autres. Elle n'avait pas pour but de laisser à l'utilisateur le soin d'afficher 1 à 1 les éléments. Avec la fonction
echo $form->creer();
en une ligne de code, le formulaire est affiché, tout simplement.
La modification (que je viens d'ajouyer à ta demande) fait que si l'utilisateur veut créer les éléments 1 à 1, il peut.
On pourrait d'ailleurs faire d'autres modèles (tableau en colonne, ...)

Pour les global, j'admet que ç'est très moche. Ce sont en fait des itérateurs pour nommer différemment chaque élément. Il faut que je ré-essaye avec le mot-clé de régler ce problème avec le mot-clé static.

Ah oui, il faut maintenant que je donne un troisième exemple avec la génération élément par élément.
tombondoff
Messages postés
25
Date d'inscription
jeudi 24 mars 2005
Statut
Membre
Dernière intervention
8 septembre 2005
-
ouais, cé vraiment assé complet pour un bon noob like me :P , et merci au 2 !
tombondoff
Messages postés
25
Date d'inscription
jeudi 24 mars 2005
Statut
Membre
Dernière intervention
8 septembre 2005
-
a, désolé pour le 2 iem poste, mais appres 1 minute de freeze, je me demande si sa fonctionne...
Samiby
Messages postés
118
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
2 janvier 2006
-
Ca freeze ?
Ca le fait souvent ? (peut-être PHP/Apache qiu plante).
Peux-tu donner le code que tu utilise (un des exemples ?), et le configuratin de ton ordinateur ?
tombondoff
Messages postés
25
Date d'inscription
jeudi 24 mars 2005
Statut
Membre
Dernière intervention
8 septembre 2005
-
nan nan :) jai juste poster 2x le meme message, mais un admin à suprimmer le doublon ;)
Bonne continuité.
Superman_U
Messages postés
1
Date d'inscription
mercredi 22 février 2006
Statut
Membre
Dernière intervention
23 février 2006
-
Code testé...
Remplit bien son office !
Pour quelqu'un comme moi qui déteste avoir à naviguer entre php/html/javascript, c'est du pur bonheur !

Attention cependant : le zip n'est pas mis à jour (notamment concernant la méthode creer) !!!
2-3 choses me manquent, pour oublier totalement html et javascript :

. Un formulaire, c'est bien, mais mis en forme, c'est encore mieux ! Pourquoi ne pas avoir créé une classe permettant de regrouper des formes dans des cellules (TD et TR) ? Avec évidemment les attributs optionnels de la cellule... Ainsi, on n'aurait recours qu'au code php pour construire et mettre en forme son formulaire... Bien plus propre que de se le faire à la main, non ? A moins qu'en l'état actuel des choses, ce ne soit possible ? Auquel cas, comment faire ?

. Dans le même esprit, pourquoi ne pas rajouter la possibilité d'intégrer un style css (optionnel) pour chaque forme ?

. Il y a de nombreuses formes présentes, mais l'intérêt de l'utilisation des classes réside dans la création facile de formes fastidieuses à mettre en oeuvre d'habitude, comme par exemple un champ date couplé à un calendrier en javascript... Serait-ce envisageable ?

Merci de ces classes, et à bientôt