FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 2015
-
8 déc. 2005 à 13:32
rafmos
Messages postés161Date d'inscriptionjeudi 13 octobre 2005StatutMembreDernière intervention12 août 2010
-
12 août 2010 à 12:05
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
rafmos
Messages postés161Date d'inscriptionjeudi 13 octobre 2005StatutMembreDernière intervention12 août 2010 12 août 2010 à 12:05
Merci beaucoup pour cette classe trop géniale !!!
Je débute en POO et je n'arrive pas à passer en paramètre la longueur d'un champ text.... Que j'utilise "width" ou "size", le champ reste toujours la même longueur.... Quelqu'un a une idée ?
Merci d'avance. ;)
cs_spatz
Messages postés1Date d'inscriptionvendredi 10 septembre 2004StatutMembreDernière intervention17 mars 2010 17 mars 2010 à 10:02
Bonjour,
je débute en prog POO et je voulais savoir comment déclarer cette class après svp... merci
Tenetubbies
Messages postés4Date d'inscriptionjeudi 9 octobre 2003StatutMembreDernière intervention 8 juillet 2009 9 févr. 2010 à 14:32
Merci, c'est précisément ce que je cherchais afin de mieux comprendre comment créer un formlaire en objet. Ton code semble propre et très lisible, bravo (:
Je ferais part de mes remarques après..
Mattinho
Messages postés2Date d'inscriptionlundi 29 octobre 2007StatutMembreDernière intervention14 janvier 2010 14 janv. 2010 à 16:33
Salut Skydoo,
Pour le 'size' il n'a pas été modifié l'espace est toujours présent (ligne 47). Enfin il me semble que c'était la coquille que j'avais constaté il y'a un an. (Ca date pour moi donc je ne sais plus trop ^^).
@MATTINHO : Tiens il a été modifié depuis que je l'ai pris non? parce que moi il n'y avait pas le 'size' j'ai du le rajouter... A moins que je l'auteur l'ai aussi posté sur un autre site (sans le et que je l'ai trouvé ailleurs...
Sinon j'ai fais comme FRANCO_SE pour le problème du addAnything qui était assez problématique et je confirme ça marche !
Mattinho
Messages postés2Date d'inscriptionlundi 29 octobre 2007StatutMembreDernière intervention14 janvier 2010 16 janv. 2009 à 09:06
Bonjour,
Tout d'abord félicitation a MALALAM pour cet excellent code.
Je débute en PHP objet et je cherchais à créer un formulaire en objet et ce code me fut fort utile.
J'ai rencontré un soucis pour la taille des champs, enfin c'était tout bête, mais au cas ou certains ne comprendraient pas.
En fait un espace c'est glissé dans la déclarations des attributs :
'size ' => ''),
Soit il faut supprimer l'espace en trop soit quand vous crééz votre formulaire il faut rajouter un espace !
Encore merci pour ce très bon code.
franco_se
Messages postés151Date d'inscriptionsamedi 1 novembre 2003StatutMembreDernière intervention30 juillet 20182 9 déc. 2007 à 12:40
perso, pour le problème de suites de addAnything; j'ai resolu ça avec :
$this -> formBuffer['anything'][$cpt] .= $any;
au lieu de
$this -> formBuffer['anything'][$cpt] = $any;
c'est simple, et ça marche ....
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 18 juin 2007 à 09:22
Hello Softghost,
La classe est en PHP5, et tu es en PHP4 ;-)
softghost
Messages postés61Date d'inscriptionvendredi 11 mars 2005StatutMembreDernière intervention13 avril 2010 16 juin 2007 à 13:28
bonjour ;
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in c:\program files\easyphp1-8\www\formulaire-class977\form.cls.php on line 6
je comprend pas cette probleme ..
merci d'avancer
cs_vega11
Messages postés39Date d'inscriptionlundi 24 avril 2006StatutMembreDernière intervention15 juillet 20101 2 juin 2007 à 21:12
tout à fait d'accord c bcp plus modulable qui plus est...
c'est un peu un modele MVC (modele vue controleur) on sépare toujours le graphisme et le traitement des données :DDD
vrt sympa tes 2 classe ^^
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 1 juin 2007 à 18:19
Hello,
j'ai créé une classe permettant de valider des données.
Je préfère bien séparer les outils, personnellement : je ne pense pas que le formulaire doive imposer la façon dont on va le traiter. Le formulaire s'affiche, et se soumet, point. C'est une autre outil qui va décider comment traiter les données qu'il reçoit.
Voir ma classe formchecker, sur ce site :-)
cs_adys
Messages postés28Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention14 août 2007 1 juin 2007 à 17:30
Salut, je suis tombé sur cette source en cherchant si ce que j'étais en train de faire n'existait pas déjà. Et en fait, pas vraiment.
Le but de ta classe est seulement d'afficher un formulaire d'après ce que j'ai vu, même si je n'ai pas lu tout le code.
Il faudrait que tu ajoutes la vérification des données au cas où le développeur sérialize le formulaire par exemple, et qu'il veut vérifier tel ou tel champ, s'il était obligatoire, s'il fallait un email, des chiffres, un mot de passe, ...
Bref, c'est là-dessus que je bosse, et en fait, c'est ma deuxième version, seulement je ne pense pas toujours à mettre mes codes sources à disposition. La prochaine le sera !
Sinon, très bon boulot quand même hein !
cs_vega11
Messages postés39Date d'inscriptionlundi 24 avril 2006StatutMembreDernière intervention15 juillet 20101 12 févr. 2007 à 15:53
dsl pour le doublon mais pour la classe de traitement d'apres ce que j'ai compris de l'objet il faudrait une classe
FormManager par exemple qui traite les informations rentrees dans le formulaire et verifie les champs peu etre selon le type que l'on rentre en se mettant une convention.
cs_vega11
Messages postés39Date d'inscriptionlundi 24 avril 2006StatutMembreDernière intervention15 juillet 20101 12 févr. 2007 à 15:45
Très bon ! on peut donc tout faire en objet ! :D
nizouille
Messages postés3Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention 5 février 2007 12 juil. 2006 à 15:08
- Pourquoi es-tu contre les retours charriot ? Peux-tu me dire comment on inclut ces retours ?
$chaineTemp .= $this -> formBuffer['close'] \n ;
Comme ça ?
- J'ai également trouvé un "bug" ? On ne peut pas ajouter un addAnything juste avant le close du form ...
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 12 juil. 2006 à 11:28
Hello,
1 => non, pas toutes en tous cas. J'ai préféré corriger d'abord les vraies erreurs, avanjt de refondre la classe pour la rendre plus...jolie.
2 => Non. Enfin, pas dans celle-ci en tous cas. Je mettrai peut-être un jour, une classe pour ça, oui. Mais décorrelée de celle-ci. La génération d'un formulaire et son traitement sont deux choses différentes selon moi.
Comment je réaliserais ça ? Eh bien...diffcile à dire. Il faut un traitement par "type", avec des options : par exemple, un traitement pour les chaînes, limités ou non en longueur, avec ou sans borne inférieure et/ou supérieure. Traitement email. Traitement codes postaux. etc...
3 => dans la méthode form::__toString (). Là où tu veux tes retours chariots. Bien que je sois contre... ;-)
et, merci à toi :-)
nizouille
Messages postés3Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention 5 février 2007 12 juil. 2006 à 00:04
Hello,
Les remarques de FHX ont elles été prises en compte ? Proposeras-tu une classe pour vérifier les champs des formulaires ? Peux-tu nous dire comment tu réaliserais ça à première vue, avec affichage de l'erreur ?
Où dois-je rajouter les différents \n pour avoir un affichage correct du code html produit ?
Merci pour ce superbe code en tous cas !
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 29 mai 2006 à 08:03
hello,
il y en a un. Plusieurs, mêmes, à la fin de la page.
On les voit même ici.
nunoluciano
Messages postés8Date d'inscriptionsamedi 3 septembre 2005StatutMembreDernière intervention28 mai 2006 28 mai 2006 à 19:14
Un simple example d'utilisation serait le bienvenu avec cette class!
Merci pour l'esprit de partage,
:-)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 1 mars 2006 à 13:51
Hello,
ok j'ai corrigé :
- si le formulaire est vide, ou si on oublie de l'ouvrir, ou de le fermer, d'ailleurs :-)
- j'ai ajouté l'attribut "size"
- j'ai corrigé le $pArr
- je me suis battu avec le addAnything, je sais d'où vient l'erreur, mais je n'ai pas le temps de corriger de suite ça va prendre un peu plus de temps que prévu.
stepibou
Messages postés112Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention11 octobre 2006 1 mars 2006 à 12:41
Salut,
ok ben nichel, ca marche tres bien!
J'ai meme pas pu afficher showelements telement y en avait,
ca a fait bugger mon navigateur dans la hauteur... ;-)
Ouai sinon, juste un truc que j'ai rajouté :
added size in input : hidden, password, text, file.
Sinon, ouai c'est bo niveau w3c pas de soucis.
Un dernier truc :
on peut pas mettre deux addAnything de suite???
ou pas si y a rien derriere... apparement un pb de cpt...
Sinon,
tranquile j'ai pu creer une classe de conservation de formulaire par javascript, En pompant sur le modèle de ta classe. (je pense que c'est un bon, complement, je le posterai bientot!
encore merci, a+.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 25 févr. 2006 à 20:43
Hello,
merci Stepibou.
Je corrigerai l'erreur en cas de formulaire vide, ça ne fait pas très propre ;-)
Pour ce qui est de la source html, je dois avouer que mon soucis premier n'était pas d'avoir un code proprement présenté, mais plutôt un code valide xhtml.
Tu peux ajouter des \r\n si tu veux oui, lol.
Je vais aussi regarder pour la balise .
Ah ben ouais faut ajouter à la définition des propriétés de la classe un :
private $pArr = array ();
stepibou
Messages postés112Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention11 octobre 2006 25 févr. 2006 à 14:37
Bon,
je t'es mis 10 pour contre-balancer le 3 d'un jaloux, qui ne s'est pas rendu compte que le principale etait d'utiliser les classes...
Sinon , il semble qu'il y ai un pbavec la balise p :
pArr n'a pas l'air d'etre defini...
J'ai du mal àsavoir quoi mettre à l'intérieur des variables de fonctions..
a+
stepibou
Messages postés112Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention11 octobre 2006 25 févr. 2006 à 12:27
Bon, vraiment de la balle, cette source, je commence à l'utiliser.
Et oui, une belle classe, faut pas que ce soit juste pour faire joli! ;)
Donc premiere imperssion :
Quand on met rien dans son formulaire , on a erreur :
machin truc is not a array...
En meme temps tu me dira un formulaire vide, ca sert à rien...
Par con,tre un truc plus reelement génant, qui m'a tout de suite marqué : J'ai fais afficher la source html...
Et là tout sur une ligne,
aucun retour à la ligne! il manque à la fin de chaque bloc :
\n..
Voila sinon, pour , l'instant, c nickel. Je vais rajouter les \n, si tu veux je t'enverai mes modifs..
bye
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 28 janv. 2006 à 13:13
En même temps, ce sont de petits objets. De plus, tu peux te permettre de les dupliquer facilement pour pouvoir modifier 2-3 trucs dedands en fonction de ce que tu veux :)
Mais c'est vrai que ca ferait un peu trop lourd je pense...
Cependant, il y a un truc que tu as oubliés de mettre dans ta classe ! C'est une méthode pour savoir si le formulaire a été soumis !!! :D
Cependant, si tu veux faire une méthode pour la soumission, tu va devoir faire ta classe de mon point de vue car sinon tu va charger trop de trucs pour tester une soumission de formulaire !
Voila je viens de comprendre maintenant pourquoi je viens de faire la remarque du tout objet :p
Imagions ca vite fait (j'ai un peu de temps la =) )
class input {
private $inputArr = array(); // Je passe sur le reste
function __construct($name, $id, $type) // Y'en a d'autres c'est pour l'exemple rapide.
function parse() // Pour pouvoir renvoyer la version texte de l'objet (ou alors via __ToString mais je préfère pas).
}
Voila un modèle de classe sympatique (et vite fait surtout !) Tu peux même en faire une abstraction en fonction de ce que tu veux en faire !
abstract class input {
abstract public function __construct($name...)
abstract public function Parse();
}
class ZoneTexte extends input {}
class BoutonRadio extends input {}
class TextArea extends input {}
Et comme ca, dans ta classe formulaire du début tu peux relier les objets entre eux de la facon que tu veux en faisant une boucle qui appèle la méthode parse() de chaque objet !
Et ca te permet d'avoir une méthode de test de soumission de formulaire sans tout chargé au préalable :)
Faudrait que je tente ca sur ta classe voir si c'est faisable. Avec la neige aujourd'hui, je vais essayer cette après midi. Dès que j'aurais developpé quelque chose je t'enverrais ca :)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 28 janv. 2006 à 12:52
Tien j'avais pas vu l'autre question. Donc, Stepibou :
je ne pense pas que ce soit à la classe formulaire de gérer les données qu'on génère au travers elle.
Pour ce qui est de conserver les données, sans js, c'est très simple : cette classe conserve bien le formulaire créé. Si tu veux passer l'objet de page en page, il suffit de le sérialiser. Je pourrais implémenter ça dans la classe, mais je n'en vois pas l'intérêt. Car je ne peux pas savoir ce que l'utilisateur va vouloir faire de cet objet sérialisé : le passer en session, dans un champ input hidden...?
Fhx => ouais, c'est possible, mais là non plus, je n'en vois pas l'intérêt lol. Ce que je vais faire un de ces 4, c'est l'alléger : chaque méthode fonctionne peu ou prou de la même manière. Donc, on peut réduire ça drasiquement. Mais faire plusieurs classe, ça ferait beaucoup d'instanciations différentes pour créer 1 formulaire, je trouve. Enfin chais pas, c'est à réflêchir...
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 28 janv. 2006 à 12:38
Bon, ca fait grosse classe ca.
Est ce qu'il n'est pas possible de faire ca en plus petites classes ?
Genre :
Une classe formulaire.
Une classe pour les inputs
Une classe pour le reste etc...
Et lier le tout via la classe de formulaire ?
Est-ce possible déja ?? ;)
stepibou
Messages postés112Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention11 octobre 2006 12 déc. 2005 à 16:38
Bonjour, merci pour cette class qui à l'air bien
construite, ca me permet de mieux comprendre,
comment utiliser et créer des classes.
Un exemple de plus d'utilisation serait peu etre le bienvenu.
Je compte bientot poster une source qui est deja prete,
dans cette source, j'utilise un formulaire mais aussi
un systeme de conservation de formulaire de page en page, avec du javascript(mais bon, le javascript n'est pas fondalement indispensable)
Donc , voila, comment creer une class qui permette de faire ca automatiquement?
J'essayerai aussi d'utiliser ta classe pour ma source, une fos que je l'aurrai posté, pour evoluer en POO... au lieu d'utiliser les multiple functions que j'ai.
Est ce que ta classe conserve les données? sinon pourrait-elle le faire?
merci, bonne continuation!
cs_johann1
Messages postés170Date d'inscriptionjeudi 21 octobre 2004StatutMembreDernière intervention 9 janvier 2008 9 déc. 2005 à 13:49
lol ... Je suis ton homonyme! Mais mon père s'appelait Johann, et j'ai tenu à porter son prénom! Je m'appelle Johan comme toi! ... Le Pirlouis est compris avec l'homme! (Wash and go! lol)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 9 déc. 2005 à 12:32
Merci Johann1.
Tu sais que tu es presque mon homonyme ? moi c'est Johan ;-)
cs_johann1
Messages postés170Date d'inscriptionjeudi 21 octobre 2004StatutMembreDernière intervention 9 janvier 2008 9 déc. 2005 à 12:09
Je tiens à me tenir informé de la bonne suite!
Bonne continuation Malaham
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 8 déc. 2005 à 14:39
C'est au cas où...je trouverai bien un truc à mettre dedans ;-)
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 8 déc. 2005 à 14:33
Aussi, si tu n'utilises pas le constructeur, rien ne sert de le déclarer :)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 8 déc. 2005 à 13:46
C'est pas bête pour openForm() ouais :-) Mais en fait, je voulais laisser le choix au développeur de recréer le même formulaire (enfin, avec les mêmes éléments) le cas échéant, avec juste des rajouts. Faut voir, je vais peut-être affiner la fonction freeForm () plutôt, pour libérer de manière plus précise.
Et heu...j'ai honte pour le $val !== ''...ne me demande pas pourquoi j'ai écrit ça, aucune idée!
Je modifie déjà ça et vais réflêchir à minimiser le risque d'erreurs.
Moi ce qui me chagrine c'est que la plupart des méthodes reprennent la même structure et que je pourrais sans trop de problème réduire sérieusement la taille de la classe. Mais j'ai peur que ce soit moins clair après lol. Par contre ce sera plus facile à modifier après. Donc je vais voir...
Merci au fait :-)
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 8 déc. 2005 à 13:32
Pas mal du tout :)
Y'a juste un truc qui me chagrine :p :
"# if (array_key_exists ($clef, $arrArgs)) {
# $this -> formAttributeArr[$clef] = $arrArgs[$clef];
# }
# else if ($val !== '') {"
elseif ( !empty($val) ) {
C'est tout :)
Par contre, j'aurais bien vu un test dans la méthode open_form() au cas ou le dev aurait oublié de libérer les ressources !
Y'a peut être autre chose mais j'ai pas le temps de tout voir :) Verra ca ce soir =)
12 août 2010 à 12:05
Je débute en POO et je n'arrive pas à passer en paramètre la longueur d'un champ text.... Que j'utilise "width" ou "size", le champ reste toujours la même longueur.... Quelqu'un a une idée ?
Merci d'avance. ;)
17 mars 2010 à 10:02
je débute en prog POO et je voulais savoir comment déclarer cette class après svp... merci
9 févr. 2010 à 14:32
Je ferais part de mes remarques après..
14 janv. 2010 à 16:33
Pour le 'size' il n'a pas été modifié l'espace est toujours présent (ligne 47). Enfin il me semble que c'était la coquille que j'avais constaté il y'a un an. (Ca date pour moi donc je ne sais plus trop ^^).
14 janv. 2010 à 09:05
@MATTINHO : Tiens il a été modifié depuis que je l'ai pris non? parce que moi il n'y avait pas le 'size' j'ai du le rajouter... A moins que je l'auteur l'ai aussi posté sur un autre site (sans le et que je l'ai trouvé ailleurs...
Sinon j'ai fais comme FRANCO_SE pour le problème du addAnything qui était assez problématique et je confirme ça marche !
16 janv. 2009 à 09:06
Tout d'abord félicitation a MALALAM pour cet excellent code.
Je débute en PHP objet et je cherchais à créer un formulaire en objet et ce code me fut fort utile.
J'ai rencontré un soucis pour la taille des champs, enfin c'était tout bête, mais au cas ou certains ne comprendraient pas.
En fait un espace c'est glissé dans la déclarations des attributs :
'size ' => ''),
Soit il faut supprimer l'espace en trop soit quand vous crééz votre formulaire il faut rajouter un espace !
Encore merci pour ce très bon code.
9 déc. 2007 à 12:40
$this -> formBuffer['anything'][$cpt] .= $any;
au lieu de
$this -> formBuffer['anything'][$cpt] = $any;
c'est simple, et ça marche ....
18 juin 2007 à 09:22
La classe est en PHP5, et tu es en PHP4 ;-)
16 juin 2007 à 13:28
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in c:\program files\easyphp1-8\www\formulaire-class977\form.cls.php on line 6
je comprend pas cette probleme ..
merci d'avancer
2 juin 2007 à 21:12
c'est un peu un modele MVC (modele vue controleur) on sépare toujours le graphisme et le traitement des données :DDD
vrt sympa tes 2 classe ^^
1 juin 2007 à 18:19
j'ai créé une classe permettant de valider des données.
Je préfère bien séparer les outils, personnellement : je ne pense pas que le formulaire doive imposer la façon dont on va le traiter. Le formulaire s'affiche, et se soumet, point. C'est une autre outil qui va décider comment traiter les données qu'il reçoit.
Voir ma classe formchecker, sur ce site :-)
1 juin 2007 à 17:30
Le but de ta classe est seulement d'afficher un formulaire d'après ce que j'ai vu, même si je n'ai pas lu tout le code.
Il faudrait que tu ajoutes la vérification des données au cas où le développeur sérialize le formulaire par exemple, et qu'il veut vérifier tel ou tel champ, s'il était obligatoire, s'il fallait un email, des chiffres, un mot de passe, ...
Bref, c'est là-dessus que je bosse, et en fait, c'est ma deuxième version, seulement je ne pense pas toujours à mettre mes codes sources à disposition. La prochaine le sera !
Sinon, très bon boulot quand même hein !
12 févr. 2007 à 15:53
FormManager par exemple qui traite les informations rentrees dans le formulaire et verifie les champs peu etre selon le type que l'on rentre en se mettant une convention.
12 févr. 2007 à 15:45
12 juil. 2006 à 15:08
$chaineTemp .= $this -> formBuffer['close'] \n ;
Comme ça ?
- J'ai également trouvé un "bug" ? On ne peut pas ajouter un addAnything juste avant le close du form ...
12 juil. 2006 à 11:28
1 => non, pas toutes en tous cas. J'ai préféré corriger d'abord les vraies erreurs, avanjt de refondre la classe pour la rendre plus...jolie.
2 => Non. Enfin, pas dans celle-ci en tous cas. Je mettrai peut-être un jour, une classe pour ça, oui. Mais décorrelée de celle-ci. La génération d'un formulaire et son traitement sont deux choses différentes selon moi.
Comment je réaliserais ça ? Eh bien...diffcile à dire. Il faut un traitement par "type", avec des options : par exemple, un traitement pour les chaînes, limités ou non en longueur, avec ou sans borne inférieure et/ou supérieure. Traitement email. Traitement codes postaux. etc...
3 => dans la méthode form::__toString (). Là où tu veux tes retours chariots. Bien que je sois contre... ;-)
et, merci à toi :-)
12 juil. 2006 à 00:04
Les remarques de FHX ont elles été prises en compte ? Proposeras-tu une classe pour vérifier les champs des formulaires ? Peux-tu nous dire comment tu réaliserais ça à première vue, avec affichage de l'erreur ?
Où dois-je rajouter les différents \n pour avoir un affichage correct du code html produit ?
Merci pour ce superbe code en tous cas !
29 mai 2006 à 08:03
il y en a un. Plusieurs, mêmes, à la fin de la page.
On les voit même ici.
28 mai 2006 à 19:14
Merci pour l'esprit de partage,
:-)
1 mars 2006 à 13:51
ok j'ai corrigé :
- si le formulaire est vide, ou si on oublie de l'ouvrir, ou de le fermer, d'ailleurs :-)
- j'ai ajouté l'attribut "size"
- j'ai corrigé le $pArr
- je me suis battu avec le addAnything, je sais d'où vient l'erreur, mais je n'ai pas le temps de corriger de suite ça va prendre un peu plus de temps que prévu.
1 mars 2006 à 12:41
ok ben nichel, ca marche tres bien!
J'ai meme pas pu afficher showelements telement y en avait,
ca a fait bugger mon navigateur dans la hauteur... ;-)
Ouai sinon, juste un truc que j'ai rajouté :
added size in input : hidden, password, text, file.
Sinon, ouai c'est bo niveau w3c pas de soucis.
Un dernier truc :
on peut pas mettre deux addAnything de suite???
ou pas si y a rien derriere... apparement un pb de cpt...
Sinon,
tranquile j'ai pu creer une classe de conservation de formulaire par javascript, En pompant sur le modèle de ta classe. (je pense que c'est un bon, complement, je le posterai bientot!
encore merci, a+.
25 févr. 2006 à 20:43
merci Stepibou.
Je corrigerai l'erreur en cas de formulaire vide, ça ne fait pas très propre ;-)
Pour ce qui est de la source html, je dois avouer que mon soucis premier n'était pas d'avoir un code proprement présenté, mais plutôt un code valide xhtml.
Tu peux ajouter des \r\n si tu veux oui, lol.
Je vais aussi regarder pour la balise .
Ah ben ouais faut ajouter à la définition des propriétés de la classe un :
private $pArr = array ();
25 févr. 2006 à 14:37
je t'es mis 10 pour contre-balancer le 3 d'un jaloux, qui ne s'est pas rendu compte que le principale etait d'utiliser les classes...
Sinon , il semble qu'il y ai un pbavec la balise p :
pArr n'a pas l'air d'etre defini...
J'ai du mal àsavoir quoi mettre à l'intérieur des variables de fonctions..
a+
25 févr. 2006 à 12:27
Et oui, une belle classe, faut pas que ce soit juste pour faire joli! ;)
Donc premiere imperssion :
Quand on met rien dans son formulaire , on a erreur :
machin truc is not a array...
En meme temps tu me dira un formulaire vide, ca sert à rien...
Par con,tre un truc plus reelement génant, qui m'a tout de suite marqué : J'ai fais afficher la source html...
Et là tout sur une ligne,
aucun retour à la ligne! il manque à la fin de chaque bloc :
\n..
Voila sinon, pour , l'instant, c nickel. Je vais rajouter les \n, si tu veux je t'enverai mes modifs..
bye
28 janv. 2006 à 13:13
Mais c'est vrai que ca ferait un peu trop lourd je pense...
Cependant, il y a un truc que tu as oubliés de mettre dans ta classe ! C'est une méthode pour savoir si le formulaire a été soumis !!! :D
Cependant, si tu veux faire une méthode pour la soumission, tu va devoir faire ta classe de mon point de vue car sinon tu va charger trop de trucs pour tester une soumission de formulaire !
Voila je viens de comprendre maintenant pourquoi je viens de faire la remarque du tout objet :p
Imagions ca vite fait (j'ai un peu de temps la =) )
class input {
private $inputArr = array(); // Je passe sur le reste
function __construct($name, $id, $type) // Y'en a d'autres c'est pour l'exemple rapide.
function parse() // Pour pouvoir renvoyer la version texte de l'objet (ou alors via __ToString mais je préfère pas).
}
Voila un modèle de classe sympatique (et vite fait surtout !) Tu peux même en faire une abstraction en fonction de ce que tu veux en faire !
abstract class input {
abstract public function __construct($name...)
abstract public function Parse();
}
class ZoneTexte extends input {}
class BoutonRadio extends input {}
class TextArea extends input {}
Et comme ca, dans ta classe formulaire du début tu peux relier les objets entre eux de la facon que tu veux en faisant une boucle qui appèle la méthode parse() de chaque objet !
Et ca te permet d'avoir une méthode de test de soumission de formulaire sans tout chargé au préalable :)
Faudrait que je tente ca sur ta classe voir si c'est faisable. Avec la neige aujourd'hui, je vais essayer cette après midi. Dès que j'aurais developpé quelque chose je t'enverrais ca :)
28 janv. 2006 à 12:52
je ne pense pas que ce soit à la classe formulaire de gérer les données qu'on génère au travers elle.
Pour ce qui est de conserver les données, sans js, c'est très simple : cette classe conserve bien le formulaire créé. Si tu veux passer l'objet de page en page, il suffit de le sérialiser. Je pourrais implémenter ça dans la classe, mais je n'en vois pas l'intérêt. Car je ne peux pas savoir ce que l'utilisateur va vouloir faire de cet objet sérialisé : le passer en session, dans un champ input hidden...?
Fhx => ouais, c'est possible, mais là non plus, je n'en vois pas l'intérêt lol. Ce que je vais faire un de ces 4, c'est l'alléger : chaque méthode fonctionne peu ou prou de la même manière. Donc, on peut réduire ça drasiquement. Mais faire plusieurs classe, ça ferait beaucoup d'instanciations différentes pour créer 1 formulaire, je trouve. Enfin chais pas, c'est à réflêchir...
28 janv. 2006 à 12:38
Est ce qu'il n'est pas possible de faire ca en plus petites classes ?
Genre :
Une classe formulaire.
Une classe pour les inputs
Une classe pour le reste etc...
Et lier le tout via la classe de formulaire ?
Est-ce possible déja ?? ;)
12 déc. 2005 à 16:38
construite, ca me permet de mieux comprendre,
comment utiliser et créer des classes.
Un exemple de plus d'utilisation serait peu etre le bienvenu.
Je compte bientot poster une source qui est deja prete,
dans cette source, j'utilise un formulaire mais aussi
un systeme de conservation de formulaire de page en page, avec du javascript(mais bon, le javascript n'est pas fondalement indispensable)
son fonctionnement se raprochera un peu du systeme
utilisé ici : http://www.phpcs.com/code.aspx?ID=29652
Donc , voila, comment creer une class qui permette de faire ca automatiquement?
J'essayerai aussi d'utiliser ta classe pour ma source, une fos que je l'aurrai posté, pour evoluer en POO... au lieu d'utiliser les multiple functions que j'ai.
Est ce que ta classe conserve les données? sinon pourrait-elle le faire?
merci, bonne continuation!
9 déc. 2005 à 13:49
9 déc. 2005 à 12:32
Tu sais que tu es presque mon homonyme ? moi c'est Johan ;-)
9 déc. 2005 à 12:09
Bonne continuation Malaham
8 déc. 2005 à 14:39
8 déc. 2005 à 14:33
8 déc. 2005 à 13:46
Et heu...j'ai honte pour le $val !== ''...ne me demande pas pourquoi j'ai écrit ça, aucune idée!
Je modifie déjà ça et vais réflêchir à minimiser le risque d'erreurs.
Moi ce qui me chagrine c'est que la plupart des méthodes reprennent la même structure et que je pourrais sans trop de problème réduire sérieusement la taille de la classe. Mais j'ai peur que ce soit moins clair après lol. Par contre ce sera plus facile à modifier après. Donc je vais voir...
Merci au fait :-)
8 déc. 2005 à 13:32
Y'a juste un truc qui me chagrine :p :
"# if (array_key_exists ($clef, $arrArgs)) {
# $this -> formAttributeArr[$clef] = $arrArgs[$clef];
# }
# else if ($val !== '') {"
elseif ( !empty($val) ) {
C'est tout :)
Par contre, j'aurais bien vu un test dans la méthode open_form() au cas ou le dev aurait oublié de libérer les ressources !
Y'a peut être autre chose mais j'ai pas le temps de tout voir :) Verra ca ce soir =)