Get element by ID après un while return

Fermé
debutantephp - 10 févr. 2016 à 15:48
 debutantephp - 11 févr. 2016 à 09:12
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

Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
Modifié par Mimiste le 10/02/2016 à 17:06
Bonjour

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

get.elementbyID('result').value 


ça ne veux rien dire... :)
0
C'est faux surtout:
L'écriture correcte est:
document.getElementById('result').value;

et fournit la valeur de l'élément de l'id correspondant, ensuite il faut l'utiliser (cette valeur).

Voir manuel
http://www.w3schools.com/jsref/met_doc_getelementbyid.asp
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > ananrze
11 févr. 2016 à 02:03
Quand il dit que c'est "faux" ... c'est juste que... cette instruction ne s'utilise pas seule...
justement.. dans le "manuel" que tu donnes... tu as un exemple :
var x=document.getElementById("myHeader");

qui signifie: on stocke le contenu de l'élément "myHeader" dans la variable "x".
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
11 févr. 2016 à 02:04
Bien entendu... tu peux aussi faire l'inverse :
var x=" une valeur...";
document.getElementById("myHeader") = x ;

Là .. je stocke le contenu de "x" dans mon champ "myHeader"
0
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.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > ananrze
11 févr. 2016 à 02:07
heeuuuu.. oui.... mais..... quel est le rapport avec la question ?? ;-)
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
10 févr. 2016 à 18:32
Bonjour,
La question concernant le javaSCRIPT ... je la déplace dans le "bon" forum.

0
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
0
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
0
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
0