Get element by ID après un while return [Fermé]

Signaler
-
 debutantephp -
Bonjour à tous,

Voilà j'ai cette fonction, qui fonctionne très bien.
Je souhaiterai juste pouvoir envoyer le résultat via la commande
get.elementbyID('result').value

<script type="text/javascript">
var CArray=new Array(-94500,5500,5500,5500,5500,5500,5500,5500,5500,125500)
function IRRCalc(CArray) {
min = 0.0;
max = 1.0;
do {
guest = (min + max) / 2;
NPV = 0;
for (var j=0; j<CArray.length; j++) {
NPV += CArray[j]/Math.pow((1+guest),j);
}
if (NPV > 0) {
min = guest;
}
else {
max = guest;
}
} while(Math.abs(NPV) > 0.000001);
return (guest * 100);
}

</script>


cependant, je n'y arrive pas.
Surtout que par la suite, j'aimerai fusionner cette fonction avec une autre pour remplacer les valeur -94500, 5500... par des variables.

Merci pour votre aide

6 réponses

Messages postés
1149
Date d'inscription
samedi 17 mai 2008
Statut
Membre
Dernière intervention
6 mars 2016
200
Bonjour

Concrètement tu aimerais faire quoi du résultat de cette fonction ? Car

get.elementbyID('result').value 


ça ne veux rien dire... :)
>
Messages postés
29912
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 octobre 2020

Salut jordane45 je parlais de la syntaxe suivante qui est fausse surtout:

get.elementbyID('result').value

Plusieurs erreurs dans le nom de la fonction (les majuscules et minuscules comptent) et la question initiale qui a été modifiée était:
que mettre dans la fonction après la boucle while et le return?
d'où ma réponse ;)

Pour la nouvelle question (remplacer des valeurs par des variables) ce n'est pas très clair non plus mais on peut utiliser une variable exactement comme une valeur puisque javascript n'est pas typé:
> ananrze
Oui mes excuses, j'ai rédigé ma question sur le forum rapidement, j'ai donc fait une erreur, je voulais évidemment indiquer "document.getelementbyID('result').value "...
Quant à return il indique la fin de la fonction (en force l'arrêt de celle ci et renvoyant une valeur, si l'on en indique pas cette valeur correspond à une indication de réussite ou d'échec/erreur de la fonction)donc il ne peut rien y avoir à sa suite.
Messages postés
29912
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 octobre 2020
2 907 > ananrze
heeuuuu.. oui.... mais..... quel est le rapport avec la question ?? ;-)
Ok merci pour l'explication pour return, je comprends mieux. J'avais pourtant chercher des infos sur des sites explicatifs mais ce n'était pas si clair
Pour les améliorations, c'est en cours, notamment grâce à votre lien http://www.w3schools.com/js/js_arrays.asp
Messages postés
29912
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 octobre 2020
2 907
Bonjour,
La question concernant le javaSCRIPT ... je la déplace dans le "bon" forum.

Bonsoir,
Merci d'avoir mis le sujet dans le bon forum.

Ok j'essaie d'expliquer un peu plus clairement.
Admettons la première fonction me retourne le résultat 10, celle-ci me retourne 20. Sachant que certaines variables issues du formulaire sont communes. Et idéalement j'aimerai faire le total. Donc idéalement en fusionnant les 2 fonctions. Mais j'ai beau essayer je n'y arrive pas. En gros ça prend cette forme :

Exemple :
var a : 5,
b : 2;
C = 10 //fonction 1 ou calcul mensualité
D = 20 //fonction 2 ou calcul IRR
E = 200 //calcul intégrant les résultats 2 fonctions.

Voici l'autre fonction

function mensualite() 
{
var
pa = parseInt(document.getElementById('prix').value),
app = parseInt(document.getElementById('apport').value),
tx = parseInt(document.getElementById('taux').value),
nbmens = parseInt(document.getElementById('nb_mens').value),

if(nbmens != '')
{
n=nbmens*12;
k=pa-app;
mens=k*(tx/100)/(1-Math.pow((1+tx/100/12),(-n)))/12;
document.getElementById('mens').value = mens; //mensualite
}
else
{
document.getElementById('mens').value = '';
}
}

J'espère que c'est plus clair...
Merci par avance
var CArray=new Array(-94500,5500,5500,5500,5500,5500,5500,5500,5500,125500);
/*deviens par exemple:*/
var unevaleur=-94500;
var uneautrevaleur=5500;
var CArray=new Array(unevaleur,uneautrevaleur,5500,5500,5500,5500,5500,5500,5500,125500);


qui a bien sûr peu(voire aucun) intérêt dans le cas présent.
Je vous invite à regarder le manuel de array en javascript car il existe des méthodes de tri et de rangement ou de remplacement:

http://www.w3schools.com/js/js_arrays.asp
Sinon pour un tableau il faut indiquer l'index(qui commence de 0), par exemple pour afficher dans la console (accessible par le débogueur du navigateur):

console.log(CArray[0]);
// affiche -94500;
console.log(CArray[9]);
//affiche la 10ème valeur du tableau: 125500


Enfin vu votre niveau de javascript debutantephp le mieux serais de commencer par un cours sur les bases(variables: définition et assignation de valeurs, fonctions, objets, tableaux et méthodes associées(les méthodes sont des fonctions propres à un objet), notation pointée...) et bien sûr un peu d'algorithmique(la structure et logique de la programmation), éventuellement la notion de récursivité assez fréquente en programmation (orientée) objet.

Bonne journée
Bonjour
Merci pour ces conseils, effectivement de meilleures connaissances en javascript ne seraient pas du luxe. Et si j'arrivais à trouver le temps, évidemment que j'aurai commencé par la base. Alors que, me direz vous, le temps perdu aujourd'hui serait du temps gagné pour demain ! ;)

Concernant la fonction indiquée plus haut, les valeurs indiquées ne sont que des exemples, il peut y en avoir plus, moins, organisées différemment. J'avais donc prévu de rendre le code plus propre (notamment grâce à l'index pour les tableaux). Disons que cette version basique me suffisait pour vérifier le calcul facilement.

Je continue mes recherches pour avancer sur mon problème, malgré mon niveau, et si vous avez des suggestions pour fusionner ces 2 fonctions, alors n'hésitez pas.

Bonne journée