Bonjour à toutes et à tous, j'ai un soucis avec un script que j'ai eu du mal à réaliser.
En fait pour l'explication il s'agit d'un script qui doit répartir un montant en plusieurs postes.
Par exemple imaginons que j'ai 3 postes répartis tels que suit:
p1 = 1550 €
p2 = 200 €
p3 = 55 €
et que j'ai un paiement de 1600 €
alors la fonction traitera:
m1= 1500 € p1= 0 €
m2= 50 € p2= 150 €
m3= 0 € p3= 55 €
en fait les champs sur lesquels sont affiché les montants des postes
sont: p1, p2, p[n], [...], p[n+1],...p13
cela s'arrête à p13
de même tout est avec les id et les classes.
et les champs sur lesquels doivent s'afficher les montants imputés, sont de m1 a m13.
j'ai donc ce code javascript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| <script type="text/javascript">
function getItems()
{
var items = new Array();
var itemCount = document.getElementsByClassName("items");
for(var i = 0; i < itemCount.length; i++)
{
items[i] = document.getElementById("p" + (i+1)).value;
}
return items;
}
function setItems(items)
{
for(var i = 0; i < items.length; i++)
{
document.getElementById("p" + (i+1)).value = items[i];
}
}
function payment(inputElm)
{
var items = getItems();
var payAmt = document.getElementById("montantacompte").value;
var i = 0;
while(payAmt != 0)
{
var temp = item[i] - payAmt;
if(temp > 0)
{
item[i] = temp;
break;
}
else if(temp < 0)
{
item[i] = 0;
payAmt = temp*-1;
}
i++;
}
setItems(items);
}
</script> |
la méthode est en onblur,
mais la j'ai le message ci dessous dans la console; je ne sais pas le déboguer:
1 2 3
| Uncaught ReferenceError: item is not defined index.php:506
payment index.php:506
onblur |
et aux lignes référencées j'ai cela:
ligne 506:
var temp = item[i] - payAmt;
ligne 475:
<input type="text" name="montantacompte" id="montantacompte" onblur="payment()" />
je ne sais pas comment résoudre car en php je fais la même chose avec une boucle et ça fonctionne, mais la j'ai besoin d'une exécution sur le client et pas sur le server, c'est pour cela que je passe par javascript.
je n'ai aucune interraction avec la bdd, aussi je n'ai pas besoin de ajax.
Par avance merci pour votre aide.
Partager