Bonjour tout le monde,
j'ai crée un formulaire PHP sous cette forme:
Avec l'aide de ce site j'ai réussi à ajouter une ligne / supprimer une ligne et insérer un champ masqué si la checkbox est cochée (case 3).
mon problème est que mon script php traite le $_post par indice => je récupère les résultats de la première ligne en consultant les $_post[xyz] au rang [0]
Le problème ce'st pour ma case 3, comment je peux affecter dans mon $_post[case3] une valeur quand la case est disabled?
Parce que si l'utilisateur désactive la case 3 sur la première ligne je n'aurais pas de $_post[case3][0]
par contre si sur la deuxième ligne il l'active et entre une valeur j'aurais (et c'est logique) un $_post[case3][0] alors que je suis sur mon rang [1].
mon script:
mon formulaire
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 <SCRIPT language="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[1].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("On ne peut pas supprimer toutes les lignes."); break; } table.deleteRow(i); rowCount--; i--; } } } catch (e) { alert(e); } } function change_case(ceci) { ceci.parentNode.childNodes[2].disabled = (ceci.checked) ? false : true; } </SCRIPT>
Code HTML : 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 <div class = "content"> <fieldset> <br /> <legend>Informations sur le(s) flux à ouvrir</legend> <br /> <form name="myform" id="myform" method="post" action="./index.php?action=verif"> <div class="donnees"> <TABLE id="dataTable"style="background-color: transparent"> <th> Choix </th> <th size="40"> Liste 1: </th> <th> case 1: </th> <th> case 2:</th> <th> case 3:</th> <th> case 4:</th> <th > Liste 2:</th> <tr > <td width="5%" ><INPUT type="checkbox" name="chk" /></Td> <td width="25%" ><select name="choixACL[]"> <option value=""> Veuillez choisir l'ACL </option> <option value="choix 1"> choix 1 </option> <option value="choix 2"> choix 2 </option> </select> </td> <td width="20%" ><INPUT type="text" name="case1[]" /></Td> <td width="20%" ><INPUT type="text" name="case2[]" /></Td> <td width="20%" ><input type="checkbox" checked="checked" onclick="change_case(this);" /> <INPUT type="text" name="case3[]"> </Td> <td width="5%" ><INPUT type="text" name="case4[]" /> </Td> <td width="5%" ><select name="liste2[]"> <option value="TCP"> a </option> <option value="UDP"> b </option> </select> </Td> </TR> </TABLE> </div> </br> <div class = "boutons"> <INPUT type="button" style = "width: 170px;left: 448px;position:absolute" class = "greenButton" value="Ajouter une ligne" onclick="addRow('dataTable')" /> <INPUT type="button" style = "width: 170px;left: 248px;position:absolute" class = "redButton" value="Supprimer une ligne" onclick="deleteRow('dataTable')" /> <INPUT type="submit" style = "width: 170px;left: 648px;position:absolute" value="Valider"> <br> </div> </br> </form> </fieldset> </div>
Si vous aviez une idée
Partager