GÉNÉRATION DE FORMULAIRES DYNAMIQUE, AVEC REGÉNÉRATION SUR LA PAGE ACTION
Tukkkko
Messages postés29Date d'inscriptionlundi 22 mars 2004StatutMembreDernière intervention29 janvier 2007
-
28 avril 2005 à 12:51
boudzz
Messages postés9Date d'inscriptionsamedi 14 mai 2005StatutMembreDernière intervention18 juin 2010
-
18 juin 2010 à 13:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
boudzz
Messages postés9Date d'inscriptionsamedi 14 mai 2005StatutMembreDernière intervention18 juin 2010 18 juin 2010 à 13:51
Moi j'ai compris, mais j'aimerai bien voir tourner un exemple du code (**flemme de l'installer**).
cs_metis15
Messages postés314Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention30 novembre 2023 19 janv. 2006 à 13:13
Hello, j'ai besoin d'un truc dans ce genre, un même formulaire, présent sur plusieurs pages, dont les champs remplis se maintiennent d'une page à l'autre et qu'on peut envoyer à partir de n'importe laquelle des pages où il se trouve...
Mais étant neuneu.moins du code, je ne comprends pas du tout comment on utilise ça. si quelqu'un à 2mn pour m'expliquer...
Mille merci
fuckya
Messages postés125Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention 8 juin 2006 14 mai 2005 à 07:11
Okay je vias jeter un coup d'oeil
tiens sympa le nouveau design :)
cs_adys
Messages postés28Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention14 août 2007 13 mai 2005 à 23:26
Désolé, il y a eu une erreur lors de mon post, j'ai cru devoir le refaire...
cs_adys
Messages postés28Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention14 août 2007 13 mai 2005 à 23:23
J'ai posté une source en rapport avec celle-ci, je pense qu'on peut faire un truc bien compler à deux, si ça t'intéresse...
Tiens moi au courant ! ;)
cs_adys
Messages postés28Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention14 août 2007 13 mai 2005 à 23:22
J'ai posté une source en rapport avec celle-ci, je pense qu'on peut faire un truc bien compler à deux, si ça t'intéresse...
Tiens moi au courant ! ;)
fuckya
Messages postés125Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention 8 juin 2006 3 mai 2005 à 14:19
C'est bien ce que je pensais ^_^
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 3 mai 2005 à 12:58
Heu desole, ce message n'etait pas destine a etre ici...en fait meme pas sur ce site lol, je ne sais pas ce que j'ai foutu!
Sinon pour en revenir a ton destructeur...ben je ne pense pas que tu aies besoin d'un veritable destructeur ici. J'ai beau reflechir, je ne vois pas.
fuckya
Messages postés125Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention 8 juin 2006 3 mai 2005 à 12:07
Les post ?
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 3 mai 2005 à 11:05
Les post peut-etre...
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 3 mai 2005 à 11:04
Dans cette classe la pas grandchose a mon avis. C'est plutot quand on ouvre des fichiers, une connection etc...
La a priori tout est detruit (tableaux, variables) une fois l'appel a la classe fini. Quoique...
fuckya
Messages postés125Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention 8 juin 2006 3 mai 2005 à 10:52
Dans ce cas, je peut détruire quoi dans cette classe ?
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 3 mai 2005 à 10:41
Tres franchement, je ne crois pas (en tous cas ce n'est pas precise dans la doc) que ce soit une obligation (je parle des constructuers et destructeurs). Pour les constructeurs, c'est plus clair sans doute. Pour les destructeurs, bah c'est toujours bien de detruire ce dont on a plus besoin, cela libere des ressources. Disons qu'en suivant les grosses nouveautes de php5 pour les objets, on peut VRAIMENT programmer objet.
Pour les erreurs de code...lol, je ne sais pas, perso je n'en ai pas vu. Il te dirait sans doute, le Antho, que tu pourrais faire tes comparaisons avec === (par exemple). Ce qui n'est pas faux...ok, c'est plus rapide d'apres lui, mais c'est surtout une question de logique. Si tu SAIS que les 2 variables (ou autre) comparees DOIVENT etre de meme type, il est plus logique de comparer aussi le type, dans ce cas.
Vla...
fuckya
Messages postés125Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention 8 juin 2006 3 mai 2005 à 10:16
Merci pour ton commentaire malalam :)
Bon alors, effectivement 'ai du oublier quelques attributs et je m'en excuse :D
Pour l'encodage base64, c'est pour faire plus propre, parce que si on l'enlève, on voit tous les attributs avec des [;] et des [$] un peu partout c'est bof :)
Pour la regénératon je trouve ca pratique quand on l'utilise pour un formulaire d'inscription par exemple, on a juste a "setter" l'attribut value avec $_POST[] et c'est dans la poche :)
pour le __construct() je l'ai pas mis sous cette forme, j'ai utilisé comme en php4 et j'ai mis le meme nom de classe. Les deux fonctionnent ou c'est mieux avec __construct ?
Pour fieldset et label, je connais pas trop, je vois ce que ca fait mais la c'est pour que ca rentre dans un form, pour des treucs qu'on recuperera dans $_POST[], label et fieldset ca rentre dans post ?
Pour la note à 6 je sais pas, j'ai eu un 10 et un 2 apparamment :s
Merci de ton encouragement malalam :)
Dommage que anthomicro soit pas passé pour me dire les erreurs du code, a moins qu'il n'y en ai pas ? :D
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 3 mai 2005 à 09:16
Hello,
ca tombe bien, je voulais mettre un commentaire!
Tukkkko d'abord => Non, on ne declare pas les variables comme etant locales a une fonction en tous cas...
D'ailleurs, on ne les declare pas du tout en php, on les definit, nuances ($chaine = "bonjour";).
Ensuite, a part ca, tu ne devrais en effet pas avoir a modifier grandchose sur ces variables...en php4 : var chaine; (pour un objet). Si tu ne le fais pas, elle est "locale" a la methode comme tu le dis.
Fuckya => jolie source!! Et en php5 :-) C'est bien ecrit en plus. Quelques petits griefs, histoire de : pas de _construct() ni de _destruct().
Je n'ai pas trouve le temps de tester ta source, en fait (c'est pas facile au boulot, c'est voyant...), alors je ne m'appuie que sur ma lecture du code : j'ai vu l'attribut checked (="checked"), mais pas selected ?
Sinon, j'aime l'idee de l'autocorrection du mauvais code :-) et de la regeneration (original!). Et quelques petits details de ta source comme l'encodage base64...
Suggestion : une amelioration pourrait consister a ajouter fieldset, et surtout label.
Voila :-) 9 pour moi.
Qui a fait descendre la note au 6, au passage...?? Et surtout : pourquoi...?
Tukkkko
Messages postés29Date d'inscriptionlundi 22 mars 2004StatutMembreDernière intervention29 janvier 2007 2 mai 2005 à 23:37
Bien sûr qu'il faut déclarer les variables locales dans une fonction!!!
Je trouve ces remarques assez étonnantes de la part de développeurs chevronnés...
fuckya
Messages postés125Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention 8 juin 2006 2 mai 2005 à 19:03
Bah normalement y'a pas besoin de déclarer des variables locales dans une fonction. Et oui les var se déclarent au début de la classe avant toute fonction
Tartopom3
Messages postés2Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention 2 mai 2005 2 mai 2005 à 14:11
Euh, c'est ce que j'avais fait. Pas de pb pour les variables "globales" à la classe.
Par contre, il faut déclarer les variables locales à chaque fonction ($allowedAttributes, etc..). Et pour ça, j'ai été obligé de les déclarer à l'extérieur des blocs function () { ... } (PHP génère une erreur quand on déclare un var $variable dans le corps d'une function d'une classe...
Et donc ensuite utiliser dans les fonctions voulues
$this->allowedAttributes (et non pas directement $allowedAttributes).
Am I wrong?
fuckya
Messages postés125Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention 8 juin 2006 2 mai 2005 à 11:03
Il suffit d'enlever les attributs public et private devants les vars, a remplacer par var $variable, et devant les fonctions
Tartopom3
Messages postés2Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention 2 mai 2005 1 mai 2005 à 23:11
OK...nice job, fellow.
...Par contre, quand on trimballe PHP 4.3.x, le délire commence, et pour cause.
D'où ma question spécial feignasse...Y-a-t-il une version PHP4 de cette classe?
Merci pour ce boulot excellent.
fuckya
Messages postés125Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention 8 juin 2006 29 avril 2005 à 15:53
Et maintenant je cherche un truc pour poursuivre, je sais pas quoi faire pour compléter ou pousser un peu plus loin
poupoly5
Messages postés10Date d'inscriptionmardi 15 mars 2005StatutMembreDernière intervention29 avril 2005 29 avril 2005 à 15:48
ah ok là je comprends mieux ce qu'il fait
merci
fuckya
Messages postés125Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention 8 juin 2006 29 avril 2005 à 15:18
Tu commence par appeler l'objet :
$form = new generateForm(Là tu mets tes attributes qui correspondent au constructeur de la classe et qui vont définir les attributs du form)
ensuite tu mets des inputs (parce que quand tu génére des form, cest pour mettre des inputs dedans ^^)
$form->addinput(xxxxx); là tu le met en mémoire
ensuite tu l'affiche $form->showInput($name);
ce qui est marrant dans cette classe, cest que si tu veux regenerer le meme formulaire sur la page suivante (quand tu appuie sur le submit) c'est que taura pas a te retaper tous les inputs, tas juste a faire directement :
$form = new regenerateForm($_POST['data']); // si data est le input hidden qui contient les infos du form
$form->showInput($name);
Voila jespere tavoir eclairé :)
poupoly5
Messages postés10Date d'inscriptionmardi 15 mars 2005StatutMembreDernière intervention29 avril 2005 29 avril 2005 à 15:13
Tu peux me dire concrètement ce ta source fait ?
je sais que tu as donné quelques explications mais je n'y comprends rien. Peux tu l'espliquer dans le détail
Merci
fuckya
Messages postés125Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention 8 juin 2006 28 avril 2005 à 12:52
Merci :)
Est ce que ca marche bien la regénération chez toi ?
Tukkkko
Messages postés29Date d'inscriptionlundi 22 mars 2004StatutMembreDernière intervention29 janvier 2007 28 avril 2005 à 12:51
J'avais du mal à concevoir du dynamique en PHP, tu l'as fait... BRAVO. It's worky
18 juin 2010 à 13:51
19 janv. 2006 à 13:13
Mais étant neuneu.moins du code, je ne comprends pas du tout comment on utilise ça. si quelqu'un à 2mn pour m'expliquer...
Mille merci
14 mai 2005 à 07:11
tiens sympa le nouveau design :)
13 mai 2005 à 23:26
13 mai 2005 à 23:23
Tiens moi au courant ! ;)
13 mai 2005 à 23:22
Tiens moi au courant ! ;)
3 mai 2005 à 14:19
3 mai 2005 à 12:58
Sinon pour en revenir a ton destructeur...ben je ne pense pas que tu aies besoin d'un veritable destructeur ici. J'ai beau reflechir, je ne vois pas.
3 mai 2005 à 12:07
3 mai 2005 à 11:05
3 mai 2005 à 11:04
La a priori tout est detruit (tableaux, variables) une fois l'appel a la classe fini. Quoique...
3 mai 2005 à 10:52
3 mai 2005 à 10:41
Label et Fieldset ne rentrent pas dams le post, non, et je savais que ca allait t'emmerder lol ;-) Parce que en effet, ca ne colle pas vraiment avec la construction de ta classe. C'est pour la mise en forme et la clarte :
http://www.w3schools.com/tags/tag_fieldset.asp
http://www.w3schools.com/tags/tag_label.asp
Pour les erreurs de code...lol, je ne sais pas, perso je n'en ai pas vu. Il te dirait sans doute, le Antho, que tu pourrais faire tes comparaisons avec === (par exemple). Ce qui n'est pas faux...ok, c'est plus rapide d'apres lui, mais c'est surtout une question de logique. Si tu SAIS que les 2 variables (ou autre) comparees DOIVENT etre de meme type, il est plus logique de comparer aussi le type, dans ce cas.
Vla...
3 mai 2005 à 10:16
Bon alors, effectivement 'ai du oublier quelques attributs et je m'en excuse :D
Pour l'encodage base64, c'est pour faire plus propre, parce que si on l'enlève, on voit tous les attributs avec des [;] et des [$] un peu partout c'est bof :)
Pour la regénératon je trouve ca pratique quand on l'utilise pour un formulaire d'inscription par exemple, on a juste a "setter" l'attribut value avec $_POST[] et c'est dans la poche :)
pour le __construct() je l'ai pas mis sous cette forme, j'ai utilisé comme en php4 et j'ai mis le meme nom de classe. Les deux fonctionnent ou c'est mieux avec __construct ?
Pour fieldset et label, je connais pas trop, je vois ce que ca fait mais la c'est pour que ca rentre dans un form, pour des treucs qu'on recuperera dans $_POST[], label et fieldset ca rentre dans post ?
Pour la note à 6 je sais pas, j'ai eu un 10 et un 2 apparamment :s
Merci de ton encouragement malalam :)
Dommage que anthomicro soit pas passé pour me dire les erreurs du code, a moins qu'il n'y en ai pas ? :D
3 mai 2005 à 09:16
ca tombe bien, je voulais mettre un commentaire!
Tukkkko d'abord => Non, on ne declare pas les variables comme etant locales a une fonction en tous cas...
D'ailleurs, on ne les declare pas du tout en php, on les definit, nuances ($chaine = "bonjour";).
Ensuite, a part ca, tu ne devrais en effet pas avoir a modifier grandchose sur ces variables...en php4 : var chaine; (pour un objet). Si tu ne le fais pas, elle est "locale" a la methode comme tu le dis.
Fuckya => jolie source!! Et en php5 :-) C'est bien ecrit en plus. Quelques petits griefs, histoire de : pas de _construct() ni de _destruct().
Je n'ai pas trouve le temps de tester ta source, en fait (c'est pas facile au boulot, c'est voyant...), alors je ne m'appuie que sur ma lecture du code : j'ai vu l'attribut checked (="checked"), mais pas selected ?
Sinon, j'aime l'idee de l'autocorrection du mauvais code :-) et de la regeneration (original!). Et quelques petits details de ta source comme l'encodage base64...
Suggestion : une amelioration pourrait consister a ajouter fieldset, et surtout label.
Voila :-) 9 pour moi.
Qui a fait descendre la note au 6, au passage...?? Et surtout : pourquoi...?
2 mai 2005 à 23:37
Je trouve ces remarques assez étonnantes de la part de développeurs chevronnés...
2 mai 2005 à 19:03
2 mai 2005 à 14:11
Par contre, il faut déclarer les variables locales à chaque fonction ($allowedAttributes, etc..). Et pour ça, j'ai été obligé de les déclarer à l'extérieur des blocs function () { ... } (PHP génère une erreur quand on déclare un var $variable dans le corps d'une function d'une classe...
Et donc ensuite utiliser dans les fonctions voulues
$this->allowedAttributes (et non pas directement $allowedAttributes).
Am I wrong?
2 mai 2005 à 11:03
1 mai 2005 à 23:11
...Par contre, quand on trimballe PHP 4.3.x, le délire commence, et pour cause.
D'où ma question spécial feignasse...Y-a-t-il une version PHP4 de cette classe?
Merci pour ce boulot excellent.
29 avril 2005 à 15:53
29 avril 2005 à 15:48
merci
29 avril 2005 à 15:18
$form = new generateForm(Là tu mets tes attributes qui correspondent au constructeur de la classe et qui vont définir les attributs du form)
ensuite tu mets des inputs (parce que quand tu génére des form, cest pour mettre des inputs dedans ^^)
$form->addinput(xxxxx); là tu le met en mémoire
ensuite tu l'affiche $form->showInput($name);
ce qui est marrant dans cette classe, cest que si tu veux regenerer le meme formulaire sur la page suivante (quand tu appuie sur le submit) c'est que taura pas a te retaper tous les inputs, tas juste a faire directement :
$form = new regenerateForm($_POST['data']); // si data est le input hidden qui contient les infos du form
$form->showInput($name);
Voila jespere tavoir eclairé :)
29 avril 2005 à 15:13
je sais que tu as donné quelques explications mais je n'y comprends rien. Peux tu l'espliquer dans le détail
Merci
28 avril 2005 à 12:52
Est ce que ca marche bien la regénération chez toi ?
28 avril 2005 à 12:51