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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
   var temp = item[i] - payAmt;
ligne 475:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<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.