Recuperation de checkbox et nommage avec crochet
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 :
Code:
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> |
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:
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 = "";
}
} |
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:
document.forms.marque.cased[].checked == true
Code:
document.getElementsByName('cased[]').checked
Je n'en peux plus, ça ne fonctionne pas!!!
PX : pour les couleurs (le reste du code JS) cela fonctionne)