formulaire POO

Répondre
keitarosan
le 18/02/2005 à 12:24
keitarosan
en fait, la classe de verification etant un objet a part, elle ne "s'active" qu'a la suite du rechargement de la page.

En clair, tu creer ton formulaire avec ton objet.
La personne remplit le form, elle le valide.
La page est rechargée, et la, on créée un object CkeckForm (ou formulaire pour ma classe), qui verifie les données du formulaire, et affiches les erreur ou non.

Les deux choses sont totalement indépendante (la création, et la verification).
>> http://projectopensource.free.fr/index.php?m=2&m2=5&s=8 <<
rosema
le 18/02/2005 à 19:33
rosema
ok, c'est noté je fait deux classe différentes. Mais pour ma vérifiaction j'aurais aimé pouvoir récuperer les propriétés de mon objet de création (qui possède les restrictions notamment) sans devoir les réentrer. En effet pour l'instant au rechargement, mon objet de création a disparu...
Je vais essayer de ne rentrer les restrictions que dans verif, mais je pense que ça perd en intertet puisqu'il faut alors retaper une action de vérification pour tout les cahmps un par un, alors que mon objet de création aurait pu les faire lister et vérifier automatiquement.

Merci pour votre aide au fait(on le dit jamais assez)
c 'est incroyable ce que je peux écrire comme conneries
keitarosan
le 18/02/2005 à 22:02
keitarosan
dans ce cas, procede comme suit:

tu declare un bel array() de tes restriction.
et tu le passe en parametre dans la classe de creation si t'es en mode creation, ou dans ta classe de check, si tu check :)

Cela implique necessairement une adaptation des script existant.
Quoi qu'en rajoutant juste une méthode dans le formulaire de check, tu peux transformé le tableau de restrictions déclaré au dessus, afin qu'il s'adapte a la checkform.

Ou alors, si t'a le courage, tu prends le script, tu t'impregne le plus possible de comment ca marche, et tu fait le tiens qui sera fait premierement a ta facon, et qui marcheras tout bien avec le tableau de restriction que t'auras déclarés.
C'est meme la meilleur solution ;)

recap:
<?php

$array = array ('restriction1', 'restriction2',...);

if (TRUE == isset($_POST))
{
//verification du form
$check_form = new CheckForm($array);

//autre code.
}
else
{
//creation du formulaire...
$form = new Formulaire($array);

//reste du code
}
?>


Mais dans tout les cas, ca implique un minimum de changement dans l'un, ou les scripts.

A toi de voir, mais comme je t'ai dit, le mieux est peut etre que tu regardes bien comment ca marche, et que t'en fasse un beau pour toi.
C'est assez simple pour un débutant, et t'auras au moins la fierté de te dire que c'est toi qui l'as fait tout seul ^^
>> http://projectopensource.free.fr/index.php?m=2&m2=5&s=8 <<
rosema
le 19/02/2005 à 10:33
rosema
Vraiement pas idiot!!!smiley
Merci beaucoup je m'y attèle de suite.
c 'est incroyable ce que je peux écrire comme conneries
keitarosan
le 21/02/2005 à 19:22
keitarosan
y a un petit soucis ^^
tu passes des parametres indépendant, dans ta classe formulaire, et pourtant, dans l'exemple, tu passe des array()...

Ou j'ai mal lu, ou tu as fait une petite erreur ^^

Sinon, y a de l'idée :)

A mon avis, tu pourrais encore séparer quelques methodes.

Exemple:
AddValueSelect($option);
ou nouveau <option>, tu fais appelles a cette methode.
Ca permet de le mettre dans une boucle, si besoin.

tu peux aussi jouer sur un double type de parametre.
Soit tu passe un tableau, et la methode le découpe pour en faire plein de <option>, soit tu ne passe qu'un string, et dans ce cas, il l'ajoute tout simplement normalement.

Apprends a envisager des cas différents, et voir si tu peux simplifier une methode pour que ca marche dans tout ces cas, avant de faire d'autre methodes.

En revanche, pense que la généralisation d'une methode, n'est pas forcement bonne.
A mon avis, tu as encore trop de paramètres dans certaines méthode, et si je veux spécifier le fait qu'un champs soit disable, je suis obliger de mettre tout les parametre d'avant, meme si sont par defaut (et vi, comme la methode sait dans lequel je veux mettre ma valeur ?? smiley)

vala vala.

Mais sincerement, c'est bien, car on voit que ca te tien a coeur.
Donc continue comme ca, dans 2 mois, tu pourras enfin produire des choses conséquentes sans trop de poser de questions :)

KeitaroSan
>> http://projectopensource.free.fr/index.php?m=2&m2=5&s=8 <<
rosema
le 22/02/2005 à 15:22
rosema
tu passes des parametres indépendant, dans ta classe formulaire, et pourtant, dans l'exemple, tu passe des array()...

Désolé mais j'ai pas bien compris ce que tu veux dire.
et si je veux spécifier le fait qu'un champs soit disable, je suis obliger de mettre tout les parametre d'avant

Justement non! regarde mon truc je crée un tableau représentant uniquement les fonction qui m'interesse d'ajouter à mon input, et je fait traiter tou ça à la fonction afficher(). Donc
<?
$champ1 = array ("type"=>"text", "name"=>"champ1","libelle" => "Entrez votre nom:","valeur_defaut" => "toto", "maxi" => 8,"mini" => 2,"restriction" => "alphabetique","obligatoire" => 1,"taille" => 20,"taille_maxi" => 15, "lecture_seule" => 0,"selectionnable" => 0, "inter"=>"");


//autant que
$champ2 = array ("type"=>"text", "name" =>"champ2", "lecture_seule" => 0,"selectionnable" => 0, "obligatoire" => 1);
$input = array($champ1, $champ2);

//fonctionneront par la méthode
$formulaire = new Formulaire();
$formulaire->afficher($input, "champ1", $formulaire);
$formulaire->afficher($input, "champ2", $formulaire);

?>

Tu as raison je m'attaque à la fonction du <option>
Merci
c 'est incroyable ce que je peux écrire comme conneries
Rex
le 22/02/2005 à 15:55
Rex
Ton script ne fonctionne pas sur mon serveur, il m'affiche tout le code PHP ????
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
rosema
le 22/02/2005 à 15:58
rosema
tu as bien pris la classe et l'exemple dans le message précédent?
c 'est incroyable ce que je peux écrire comme conneries
Rex
le 22/02/2005 à 16:12
Rex
Rigoureusement !
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Répondre
LoadingChargement en cours