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
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
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>
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"> </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>
Partager