Bonjour,

Je suis entrain de réaliser un formulaire de devis / facture pour une partie admin.

Ce formulaire a la particularité de générer des lignes supplémentaires.
Cependant je suis obligé d'utiliser du javascript pour l'addition des champs (Quantité * Prix). La formule que j'ai trouvé fonctionne mais je ne comprends pas comment je dois faire ma boucle (Javascript et moi; on est pas ami).

Je précise également que lors du traitement php; je revérifie tout.
Je poste mon code actuel ci-dessous.

Est ce que quelqu'un pourrait me donner un coup de pouce ?

Merci d'avance,
David

La partie 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 
<script type="text/javascript">
        function addRow(tableID) {
 
            var table = document.getElementById(tableID);
 
            var rowCount = table.rows.length;
            var row = table.insertRow(rowCount);
 
            var colCount = table.rows[0].cells.length;
 
            for(var i=0; i<colCount; i++) {
 
                var newcell = row.insertCell(i);
 
                newcell.innerHTML = table.rows[0].cells[i].innerHTML;
                //alert(newcell.childNodes);
                switch(newcell.childNodes[0].type) {
                    case "text":
                            newcell.childNodes[0].value = "";
                            break;
                    case "checkbox":
                            newcell.childNodes[0].checked = false;
                            break;
                    case "select-one":
                            newcell.childNodes[0].selectedIndex = 0;
                            break;
                }
            }
        }
 
        function deleteRow(tableID) {
            try {
            var table = document.getElementById(tableID);
            var rowCount = table.rows.length;
 
            for(var i=0; i<rowCount; i++) {
                var row = table.rows[i];
                var chkbox = row.cells[0].childNodes[0];
                if(null != chkbox && true == chkbox.checked) {
                    if(rowCount <= 1) {
                        alert("Cannot delete all the rows.");
                        break;
                    }
                    table.deleteRow(i);
                    rowCount--;
                    i--;
                }
 
 
            }
            }catch(e) {
                alert(e);
            }
        }
function somme(){
        var input1 = isNaN(document.getElementById('amount1').value) ? 0 : document.getElementById('amount1').value;
        var input2 = isNaN(document.getElementById('amount2').value) ? 0 : document.getElementById('amount2').value;
 
        var total_amount = Number(input1) * Number(input2);
 
        //uniquement si suppression de la partie décimale
        //total_amount = parseInt(total_amount);
 
        document.getElementById('total_item').value = total_amount;
}
</script>
La partie Html

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
 
    <input type="button" value="Add Row" onclick="addRow('dataTable')" />
    <input type="button" value="Delete Row" onclick="deleteRow('dataTable')" />
    <table width="910px" border="1">
        <td width="25">&nbsp;</td>
        <td width="385">Item</td>
        <td width="100">Quantity</td>
        <td width="120">Unit</td>
        <td width="120">Unit Price</td>
        <td width="120">Amount</td>
    </table>
    <form name="add_quote" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
    <table id="dataTable" width="910px" border="1">
        <tr>
            <td width="25"><input type="checkbox" name="chk[]"/></td>
            <td width="385"><input style="width:385px; height:30px" type="text" name="item[]"/></td>
            <td width="100"><input style="width:100px; height:30px" type="text" name="quantity[]" id="amount1" onchange="somme()" onkeyup="somme()" /></td>
            <td width="120">
                <select style="width:120px; height:30px" name="unit[]">
                    <option value="0">-----</option>
                    <option value="1">Box</option>
                    <option value="2">Pcs</option>
                </select>
            </td>
            <td width="120"><input style="width:120px; height:30px" type="text" name="unit_price[]" id="amount2" onchange="somme()" onkeyup="somme()" /></td>
            <td width="120"><input style="width:120px; height:30px" type="text" name="amount[]" id="total_item"  /></td>
        </tr>
    </table>