s1pike
Messages postés19Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention26 août 2006
-
9 mai 2006 à 18:31
s1pike
Messages postés19Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention26 août 2006
-
10 mai 2006 à 13:56
Bonjour à tous, j'ai un petit pb à résoudre. J'ai un classe qui se nomme utilisateur et qui contient des methodes getNom(),getPrenom(). Dans un autre fichier j'ai un formulaire 2 imput. Le premier va avoir comme nom name=nom et le deuxieme name=prenom. Je souhaiterai en fonction du nom du champ input recuperer la methode associer de la classe. Je m'explique, lorsque je tombe sur name=nom, je souhaite recupere le getter associé, c'est à dire getNom(), et recuperer le nom de la classe pour l'affecter a l'element input.
Voici ce que j'ai :
Objet est ma classe qui contient les getter. elt est mon formulaire html
nom_method contient le nom de la methode dont j'ai besoin par exemple getName()
mais quand je fait objet.nom_method (equivaut logiquement a objet.getName()) ca ne marche pas.
Hermios
Messages postés264Date d'inscriptiondimanche 14 avril 2013StatutMembreDernière intervention23 mai 20142 9 mai 2006 à 21:13
Il serait peut être intéressant que tu nous donnes ta définition de l'élément "objet", parce que là, j'avous ne pas tout comprendre. Personellement, je n'ai jamais vu appeler une foncion de cette manière, donc je pense que tu ne t'y prends pas bien. Complète en précisant les noms des fichiers, et j'essaierai de t'aider :))))
Le but du code est de passer une classe qui contient des getter et setter à un objet (formfield) qui parcours tous les input de ce formulaire, recupere le nom, et en fonction du nom des inputs crée une variable nom_method qui serra de la forme get+NomInput ex : getNom() ou getPrenom() afin de recuperer le nom et le prenom de l'objet passe en parametre (ici uti) et afficher les valeurs recuperées dans les input ^^ !!!
Voila j'espere avoir été un peu plus clair, si tu as besoin de plus de detail fait moi signe...
Hermios
Messages postés264Date d'inscriptiondimanche 14 avril 2013StatutMembreDernière intervention23 mai 20142 9 mai 2006 à 21:53
Je note déjà des casses différentes, pour la définition de ta fonction utilisateur(), et son utilisation (var uti=new Utilisateur() )
Ensuite, je pense que tes parenthèses sont en trop dans ta définition de nom_method, puisque tu définis toi même tes fonctions comme this.getNom
(mais là, j'avoue ne pas être sur). Essaie déjà de voir ça, et éventuellement, fais des tests pour savoir où ça plante exactement (personellement, j'use et j'abuse des alerts, puisque javascript lit et exécute le programme dans son sens normal de lecture, tu peux savoir immédiatement à quelle ligne ça bugue)
voilà
@+. moi
Vous n’avez pas trouvé la réponse que vous recherchez ?
s1pike
Messages postés19Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention26 août 2006 9 mai 2006 à 22:01
ouhais je suis d'accord pour la casse mais j'ai tapé a l'arrache c'est pour ca , mais mon code est correcte. Le bug vient juste du fait que lorsque je veux utiliser ma variable qui contient le nom de ma methode, je ne peux pas faire monObjet.nom_methode
EX :
Logquement je devrais faire uti.getNom();
or ici uti est passé en parametre et le nom de la methode est stocké dans nom_methode
nom_methode="getName()"; // c'est un raccourci de mon code mais le resultat est le meme
objet.nom_methode me retourne undefined
alors que si je fait objet.getName() me retourne le nom de mon objet uti
Le problème vient juste de la car je ne sais pas comment évaluer ma methode pour faire comme si c'etait getName()
J'ai essayé eval() ca ne marche pas, je ne pense peut etre pas a tout donc c'est pour ca que j'en parle sur le forum.
Ou alors si ya une methode d'introspection de ma classe et me retourne une liste avec les méthodes de ma classe javascript (Utilisateur) je suis preneur.
Le but est vraiment de récupérer le résultat de chaque getter ma classe Utilisateur, mais pour ca il faut bien les récupérer.
// on rajoute la méthode toFirstUpperCase à l'objet String
string.prototype.toFirstUpperCase = function(){
var s;
s += this.charAt(0).toUpperCase();
s += this.substring(1, this.length).toLowerCase();
return s;
}
tu peux meme faire : var truc = tonObj['get' + nom_champ.toString().toFirstUpperCase()];
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 10 mai 2006 à 13:46
eval est une méthode ca implique donc qu'il va y avoir du code derriere, la facon que je t'ai montré ne fais pas appel à d'autres méthodes elle sera donc beaucoup plus rapide ...
évite eval sauf quand c'est vraiment nécessaire, ca conduit souvent à des trucs bien compliqués