fonction et récupération de variables.

Mammouth du PHP | 702 Messages

18 juil. 2012, 16:55

Bonjour à tous, j'ai conçu la fonction sous-jacente:
[javascript]<script language="text/javascript">
function honoraire(p1,p2,p3,p4,t1,t2,t3,type,versement,acompte)
{
var t1 = 17.00;
var t2 = 10.00;
var t3 = 6.00;
var p1 = 5000.00;
var p2 = 5000.01;
var p3 = 8000.00;
var p4 = 8000.01;
var type = "d";
var versement = 34312.51;
var acompte = document.getElementById("acompte").value;

if (type== "d") ;
{
if(versement== 0 && acompte <= p1)
{
reste1= acompte;
pc= t1/100;
taux1= pc+1;
h1=((reste1*taux1)+reste1);
honoraires=h1;
document.getElementById('t1').value=taux1;
document.getElementById('h1').value=h1;
document.getElementById('honoraires').value=honoraires;
}
else if(versement < p1 && (versement + acompte) <= p1)
{
reste1= acompte;
pc= t1/100;
taux1= pc+1;
h1= ((reste1*taux1)-reste1;
honoraires= h1;
document.getElementById('t1').value=taux1;
document.getElementById('h1').value=h1;
document.getElementById('honoraires').value=honoraires;
}
else if(versement <= p1 && (versement+acompte)>= p2 && (versement+acompte)<=p3)
{
reste1=p1-versement;
pc=t1/100;
taux1=pc+1;
h1=(reste1*taux1)-reste1;
reste2=acompte-reste1;
pc2=t2/100;
taux2=pc2+1;
h2=(reste2*taux2)-reste2;
honoraires=h1+h2;
document.getElementById('t1').value=taux1;
document.getElementById('h1').value=h1;
document.getElementById('t2').value=taux2;
document.getElementById('h2').value=h2;
document.getElementById('honoraires').value=honoraires;
}
else if (versement==0 && acompte>=p2 && acompte <=p3)
{
reste2=acompte-p1;
reste1=p1;
pc=(t1/100);
taux1=pc+1;
h1=((reste1*taux1)-reste1);
pc2=(t2/100);
taux2=pc2+1;
h2=((reste2*taux2)-reste2);
honoraires=(h1+h2);
document.getElementById('t1').value=taux1;
document.getElementById('h1').value=h1;
document.getElementById('t2').value=taux2;
document.getElementById('h2').value=h2;
document.getElementById('honoraires').value=honoraires;
}
else if(versement<=p3 && versement>=p2 && (versement+acompte)>=p2 && (versement+acompte)<=$3)
{

reste1=acompte;
pc=($2/100);
taux1=pc+1;
h1=((reste1*taux1)-reste1);
honoraires=h1;
document.getElementById('t1').value=taux1;
document.getElementById('h1').value=h1;
document.getElementById('honoraires').value=honoraires;
}
else if(versement>=p2 && versement<=p3 && (versement+acompte)>=p4)
{
reste1=p4-versement;
pc=(t2/100);
taux2=pc+1;
h2=((reste1*taux2)-reste1);
reste2=acompte-reste1;
pc2=(t3/100);
taux3=pc2+1;
h3=((reste2*taux3)-reste2);
honoraires=(h2+h3);
document.getElementById('t3').value=taux3;
document.getElementById('h3').value=h3;
document.getElementById('t2').value=taux2;
document.getElementById('h2').value=h2;
document.getElementById('honoraires').value=honoraires;
}
else if(versement==0 && acompte>=p4)
{
reste1=p1;
reste2=p3-p2;
pc=(t1/100);
taux1=pc+1;
h1=((reste1*taux1)-reste1);
pc2=(t2/100);
taux2=pc2+1;
h2=((reste2*taux2)-reste2);
reste3=(acompte-reste1-reste2);
pc3=(t3/100);
taux3=pc3+1;
h3=((reste3*$taux3)-reste3);
honoraires=(h1+h2+h3);
document.getElementById('t1').value=taux1;
document.getElementById('h1').value=h1;
document.getElementById('t3').value=taux3;
document.getElementById('h3').value=h3;
document.getElementById('t2').value=taux2;
document.getElementById('h2').value=h2;
document.getElementById('honoraires').value=honoraires;
}
else if(versement>=p4)
{
reste3=acompte;
pc3=($3/100);
taux3=pc3+1;
h3=((reste3*taux3)-reste3);
honoraires=(h3);
document.getElementById('t3').value=taux3;
document.getElementById('h3').value=h3;
document.getElementById('honoraires').value=honoraires;
}
}
if (type=="l")
{
pc1=(t1/100);
taux1=pc1+1;
honoraires=acompte*taux1;
document.getElementById('t1').value=taux1;
document.getElementById('h1').value=h1;
document.getElementById('honoraires').value=honoraires;
}
}

</script>[/javascript]

le soucis c'est que quand j'essais de l'utiliser via l'input ci dessous:
<input type="text" name="acompte" id="acompte" onkeyup="honoraire()"  /> 
j'ai un message d'erreur dans la console:

Uncaught ReferenceError: honoraire is not defined index.php:519
onkeyup

je ne sais pas ni pourquoi ni comment résoudre ce problème.

pouvez vous m'aider?

par avance merci.


bien à vous.

ViPHP
xTG
ViPHP | 7331 Messages

18 juil. 2012, 21:25

Une fonction est définie par son prototype.
En gros :

Code : Tout sélectionner

function test(a, b)
est une fonction totalement différente de

Code : Tout sélectionner

function test()
Donc vu que ta fonction possède des paramètres et que celle que tu appelles est sans aucun paramètre il est normal qu'il ne trouve rien qui corresponde.

Mammouth du PHP | 702 Messages

19 juil. 2012, 08:06

oui mais en fait j'ai modifié la chose, donc en affichant la source html j'ai ceci qui est généré:

[javascript]<script language="text/javascript">



function acompte(p1,p2,p3,p4,t1,t2,t3,type,versement,acompte)



{
var t1 = 17.00;
var t2 = 10.00;
var t3 = 6.00;
var p1 = 5000.00;
var p2 = 5000.01;
var p3 = 8000.00;
var p4 = 8000.01;
var type = "d";
var versement = 34312.51;
var acompte = document.getElementById("acompte").value;

if (type== "d") ;
{
if(versement== 0 && acompte <= p1)
{
reste1= acompte;
pc= t1/100;
taux1= pc+1;
h1=((reste1*taux1)+reste1);
honoraires=h1;
document.getElementById('t1').value=taux1;
document.getElementById('h1').value=h1;
document.getElementById('honoraires').value=honoraires;
}
else if(versement < p1 && (versement + acompte) <= p1)
{
reste1= acompte;
pc= t1/100;
taux1= pc+1;
h1= (reste1*taux1)-reste1;
honoraires= h1;
document.getElementById('t1').value=taux1;
document.getElementById('h1').value=h1;
document.getElementById('honoraires').value=honoraires;
}
else if(versement <= p1 && (versement+acompte)>= p2 && (versement+acompte)<=p3)
{
reste1=p1-versement;
pc=t1/100;
taux1=pc+1;
h1=(reste1*taux1)-reste1;
reste2=acompte-reste1;
pc2=t2/100;
taux2=pc2+1;
h2=(reste2*taux2)-reste2;
honoraires=h1+h2;
document.getElementById('t1').value=taux1;
document.getElementById('h1').value=h1;
document.getElementById('t2').value=taux2;
document.getElementById('h2').value=h2;
document.getElementById('honoraires').value=honoraires;
}
else if (versement==0 && acompte>=p2 && acompte <=p3)
{
reste2=acompte-p1;
reste1=p1;
pc=(t1/100);
taux1=pc+1;
h1=((reste1*taux1)-reste1);
pc2=(t2/100);
taux2=pc2+1;
h2=((reste2*taux2)-reste2);
honoraires=(h1+h2);
document.getElementById('t1').value=taux1;
document.getElementById('h1').value=h1;
document.getElementById('t2').value=taux2;
document.getElementById('h2').value=h2;
document.getElementById('honoraires').value=honoraires;
}
else if(versement<=p3 && versement>=p2 && (versement+acompte)>=p2 && (versement+acompte)<=$3)
{
reste1=acompte;
pc=($2/100);
taux1=pc+1;
h1=((reste1*taux1)-reste1);
honoraires=h1;
document.getElementById('t1').value=taux1;
document.getElementById('h1').value=h1;
document.getElementById('honoraires').value=honoraires;
}
else if(versement>=p2 && versement<=p3 && (versement+acompte)>=p4)
{
reste1=p4-versement;
pc=(t2/100);
taux2=pc+1;
h2=((reste1*taux2)-reste1);
reste2=acompte-reste1;
pc2=(t3/100);
taux3=pc2+1;
h3=((reste2*taux3)-reste2);
honoraires=(h2+h3);
document.getElementById('t3').value=taux3;
document.getElementById('h3').value=h3;
document.getElementById('t2').value=taux2;
document.getElementById('h2').value=h2;
document.getElementById('honoraires').value=honoraires;
}
else if(versement==0 && acompte>=p4)
{
reste1=p1;
reste2=p3-p2;
pc=(t1/100);
taux1=pc+1;
h1=((reste1*taux1)-reste1);
pc2=(t2/100);
taux2=pc2+1;
h2=((reste2*taux2)-reste2);
reste3=(acompte-reste1-reste2);
pc3=(t3/100);
taux3=pc3+1;
h3=((reste3*$taux3)-reste3);
honoraires=(h1+h2+h3);
document.getElementById('t1').value=taux1;
document.getElementById('h1').value=h1;
document.getElementById('t3').value=taux3;
document.getElementById('h3').value=h3;
document.getElementById('t2').value=taux2;
document.getElementById('h2').value=h2;
document.getElementById('honoraires').value=honoraires;
}
else if(versement>=p4)
{
reste3=acompte;
pc3=($3/100);
taux3=pc3+1;
h3=((reste3*taux3)-reste3);
honoraires=(h3);
document.getElementById('t3').value=taux3;
document.getElementById('h3').value=h3;
document.getElementById('honoraires').value=honoraires;
}
}
if (type=="l")
{
pc1=(t1/100);
taux1=pc1+1;
honoraires=acompte*taux1;
document.getElementById('t1').value=taux1;
document.getElementById('h1').value=h1;
document.getElementById('honoraires').value=honoraires;
}
}
</script>[/javascript]


et cet input type text avec le onkeyup
<input type="text" name="acompte" id="acompte" onkeyup="acompte(p1,p2,p3,p4,t1,t2,t3,type,versement,acompte)">



or dans la console j'ai "3Uncaught ReferenceError: p3 is not defined "

pourtant elle est bien définie...

Mammouth du PHP | 702 Messages

19 juil. 2012, 08:47

bon en fait il me disait que toutes mes variables sont indéfinies, j'ai donc du créer des champs de type hidden et leur affecter la valeur de ma variable maintenant il me dit
Uncaught TypeError: object is not a function test.php:10
onkeyup