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

cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 - 1 juin 2005 à 05:24
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

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
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
tombondoff Messages postés 25 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 8 septembre 2005
8 sept. 2005 à 04:11
nan nan :) jai juste poster 2x le meme message, mais un admin à suprimmer le doublon ;)
Bonne continuité.
Samiby Messages postés 118 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 2 janvier 2006
3 juil. 2005 à 11:40
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
2 juil. 2005 à 19:19
a, désolé pour le 2 iem poste, mais appres 1 minute de freeze, je me demande si sa fonctionne...
tombondoff Messages postés 25 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 8 septembre 2005
2 juil. 2005 à 19:11
ouais, cé vraiment assé complet pour un bon noob like me :P , et merci au 2 !
Samiby Messages postés 118 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 2 janvier 2006
2 juin 2005 à 14:10
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.
Samiby Messages postés 118 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 2 janvier 2006
2 juin 2005 à 13:30
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)
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
1 juin 2005 à 23:47
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
1 juin 2005 à 15:29
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);
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
1 juin 2005 à 13:08
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 :)
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
1 juin 2005 à 05:24
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 == '') ?

Rejoignez-nous