GÉNÉRATION DE FORMULAIRES DYNAMIQUE, AVEC REGÉNÉRATION SUR LA PAGE ACTION

Tukkkko Messages postés 29 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 29 janvier 2007 - 28 avril 2005 à 12:51
boudzz Messages postés 9 Date d'inscription samedi 14 mai 2005 Statut Membre Dernière intervention 18 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.

https://codes-sources.commentcamarche.net/source/31025-generation-de-formulaires-dynamique-avec-regeneration-sur-la-page-action

boudzz Messages postés 9 Date d'inscription samedi 14 mai 2005 Statut Membre Dernière intervention 18 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és 314 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 30 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és 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Derniè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és 28 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 14 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és 28 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 14 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és 28 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 14 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és 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
3 mai 2005 à 14:19
C'est bien ce que je pensais ^_^
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
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és 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
3 mai 2005 à 12:07
Les post ?
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 mai 2005 à 11:05
Les post peut-etre...
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
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és 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
3 mai 2005 à 10:52
Dans ce cas, je peut détruire quoi dans cette classe ?
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
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.

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...
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Derniè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és 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
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és 29 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 29 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és 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Derniè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és 2 Date d'inscription vendredi 10 novembre 2000 Statut Membre Derniè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és 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Derniè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és 2 Date d'inscription vendredi 10 novembre 2000 Statut Membre Derniè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és 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Derniè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és 10 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 29 avril 2005
29 avril 2005 à 15:48
ah ok là je comprends mieux ce qu'il fait
merci
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Derniè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és 10 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 29 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és 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Derniè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és 29 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 29 janvier 2007
28 avril 2005 à 12:51
J'avais du mal à concevoir du dynamique en PHP, tu l'as fait... BRAVO. It's worky
Rejoignez-nous