begin process at 2012 05 29 02:54:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Autre

 > 

Appel dynamique de fonction


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Appel dynamique de fonction

vendredi 15 avril 2011 à 11:11:17 | Appel dynamique de fonction

squonk14


Bonjour,

j'ai une question toute bête.
Je voudrais simplifier un code dans lequel j'ai des fonctions qui se ressemblent.
Si on resume à l'essentiel, ça donne un truc comme ça :

Code HTML :
<html>
<head>
	<title>Sans titre</title>
<script>

function test_un(annee, mois){
   alert("Je suis dans test un\n"+annee+"\n"+mois);
}

function test_deux(annee, mois){
   alert("Je suis dans test deux\n"+annee+"\n"+mois);
}

function test_trois(annee, mois){
   alert("Je suis dans test trois\n"+annee+"\n"+mois);
}

function appel(cas, annee, mois){
   if (cas=="un") test_un(annee, mois);
   if (cas=="deux") test_deux(annee, mois);
   if (cas=="trois") test_trois(annee, mois);
}

</script>
</head>

<body>

<input type="button" value="Test 1" onClick=appel("un","2011","04")>
<input type="button" value="Test 2" onClick=appel("deux","2011","04")>
<input type="button" value="Test 3" onClick=appel("trois","2011","04")>

</body>
</html>


Bon c'est vraiment résumé hein ! Le code fait 1800 lignes et le html 3000.
Mais l'essentiel de mon problème est là : je voudrais trouvé un moyen dynamique pour appeler les fonctions test_xxx à partir du paramètre "cas".

J'ai pensé à ça :

Code Javascript :
function appel(cas, annee, mois){
   setTimeout("test_"+cas+"("+annee+","+mois+")",1);
}


Malheureusement, ça convertit la valeur de mois (égale à "04") en numérique, donc 4. Et ça c'est pas bon.

Quelqu'un aurait-il une idée ?

-------------------------------------------------------------
Il ne suffit pas d'être inutile. Encore faut-il être odieux.
vendredi 15 avril 2011 à 11:22:15 | Re : Appel dynamique de fonction

jopop

Réponse acceptée !
Salut,

pour ton problème de "04" as-tu tenté de passer par une variable intermédiaire pour forcer le bon cast, du genre :
Code Javascript :
var month = "" + mois;

(à tester, je sais pas si ça fonctionne)

Sinon la commande JS pour interpréter du code sous forme de chaîne de caractères est eval(), ex. :
Code Javascript :
eval("alert('msg')");


Bon code
vendredi 15 avril 2011 à 11:41:30 | Re : Appel dynamique de fonction

squonk14


Ah ah ah !!
Bien joué mon pote !!
Désolé je m'emporte.
Merci pour ta rapidité et ta pertinence.
En fait ça donne un truc comme ça.
Code Javascript :
function appel(cas, annee, mois){
   eval("test_"+cas+"('"+annee+"','"+mois+"')");
}


Encore merci de m'avoir aidé.

-------------------------------------------------------------
Il ne suffit pas d'être inutile. Encore faut-il être odieux.


Cette discussion est classée dans : code, test, annee, mois, cas


Répondre à ce message

Sujets en rapport avec ce message

Scinder du code en deux pages [ par Prof_Matches ] Bonjour, Voici le code que j'ai sur une page HTML : J'aimerais avoir sur : [*] - page 1 : les variables var et le résultat des document.write [*] Probleme de Regex [ par DoomRider ] Voila j'ai de nouveau des problemes de regex auquel j'ai pas trouvé de réponses en faisant des test et des recherche, je les met tous dans ce post >_1 Vérification d'une liste box [ par jasou62114 ] Bonjour voilà j'ai un soucis,(enfin c'est normal tout le monde poste pour celà), mais voilà j'ai vu qu'il y avait des solutions pour vérifier que tel Séparation d'un code. [ par Prof_Matches ] (je suis débutant) J'ai écrit un code dans une page (page B) qui me donne l'âge d'une personne (dans un site sur la généalogie de ma famille). Le souc Explication code [ par Jijudu ] Bonjour, J'ai remarqué un code qui avait l'air intéressant ds l'un des topic que je ne comprend pas:var test = document.createElement('a');test.href = problème avec javascript [ par siham2010 ] Bonjour, Problème : rien ne s'affiche lorsque j'affecte des valeurs à la variable macouleur comme présenté ci-dessous alors que lorsque je nome l'inpu XMLHttpRequest ne marche que pour FireFox et Safari ?? [ par mrassaa ] Bonjour, Pour faire simple, j'ai une base de données dont j'ai envie d'extraire des infos. Mon programme marche nickel avec firefox et safari mais pa Problème de compatibilité avec Chrome et IE [ par mrassaa ] Salut à tous, En fait, j'ai mis en place avec Javascript/Ajax (je suis débutant en Ajax) un code qui marche bien avec Firefox et Safari mais pas avec débutant, utilisation d'un code js [ par tortuedu74 ] Bonjour, Je code un intranet avec visualStudio 2008.Ne pouvant pas afficher de msgBox, j'ai opté pour le javascript (dont je ne connais rien... ).voic Help: Date en javascript qui retourne une mauvaise date [ par dgfhierf ] Bonjour,Je voudrais ajouter 30 jours à une date et je ne pense pas me tromper en faisant : myDate = new Date(annee,mois,jour);  New_date = myDate; New


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,201 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales