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:
la méthode est en onblur,Code:
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>
mais la j'ai le message ci dessous dans la console; je ne sais pas le déboguer:
et aux lignes référencées j'ai cela:Code:
1
2
3 Uncaught ReferenceError: item is not defined index.php:506 payment index.php:506 onblur
ligne 506:
ligne 475:Code:var temp = item[i] - payAmt;
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.Code:<input type="text" name="montantacompte" id="montantacompte" onblur="payment()" />
je n'ai aucune interraction avec la bdd, aussi je n'ai pas besoin de ajax.
Par avance merci pour votre aide.