Bonjour à tous,
J'ai eu du mal à trouver un nom pour mon sujet, je pense qu'il n'est pas très pertinent... voici mon problème :
Je dois débugger un code PHP + JS. En fait, j'ai une liste de checkboxes créées dynamiquement en PHP :
Voici le code source :
Avec cela, j'ai un JS (qui ne fonctionne pas donc, qui doit compter le nombre de checkbox, vérifier si elles sont cochées, puis incrémenter éventuellement un montant. Voici ce code :
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 <tr> <td width="27"> <input type="checkbox" name="cased[]" value="7" onClick="calcul_prix()"> <input type="hidden" name="prixOpt" value="350.00"> <input type="hidden" name="nomOpt1" value="350.00"> </td> <td width="151">radio cd 2x15W</td> <td width="208" class="txt1">350.00 </td> </tr> <tr valign="top"> <td width="27"> <input type="checkbox" name="cased[]" value="1" onClick="calcul_prix()"> <input type="hidden" name="prixOpt" value="450.00"> <input type="hidden" name="nomOpt2" value="450.00"> </td> <td width="151">jantes alu 15 mahonia</td> <td width="208" class="txt1">450.00 </td> </tr> <tr valign="top"> <td width="27"> <input type="checkbox" name="cased[]" value="2" onClick="calcul_prix()"> <input type="hidden" name="prixOpt" value="900.00"> <input type="hidden" name="nomOpt3" value="900.00"> </td>
La particularité est que le nom des checkboxes est "cased[]". Ce nom ne peut pas être changé car il est utilisé sur la page appelante du formulaire, mais je ne vois pas comment récupérer cette valeur cochée ici :
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 function calcul_prix() { var px = 0; px = <?= $vehicule['prix_leader'] ?>; for (var i = 0; i < document.getElementsByName('cased[]').length; i++) { if (document.forms.marque.cased[].checked == true) { alert('test'); px = parseFloat(px) + parseFloat(document.marque.prixOpt[i].value); } } for (var j = 0; j < document.marque.couleur.length ; j++) { if (document.marque.couleur[j].checked == true) { px = parseFloat(px) + parseFloat(document.marque.prixCouleur[j].value); } } if (px != 0) { parent.document.getElementById("prixAff").innerHTML = "Total avec options :"+eval(px)+" €<br>"; } else { parent.document.getElementById("prixAff").innerHTML = ""; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part document.forms.marque.cased[].checked == trueJe n'en peux plus, ça ne fonctionne pas!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part document.getElementsByName('cased[]').checked
PX : pour les couleurs (le reste du code JS) cela fonctionne)
Partager