IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Recuperation de checkbox et nommage avec crochet [FAQ]


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 178
    Points : 122
    Points
    122
    Par défaut 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 : 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&nbsp;€</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&nbsp;€</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 : 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)+" &euro;<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 : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms.marque.cased[].checked == true
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByName('cased[]').checked
    Je n'en peux plus, ça ne fonctionne pas!!!

    PX : pour les couleurs (le reste du code JS) cela fonctionne)

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByName('cased[]')
    Te renvoie une collection des éléments ayant le name=cased[], cette collection n'a pas de propriété checked, il faut donc boucler sur cette collection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(var k=0;k<document.getElementsByName('cased[]').length;k++){
        if(document.getElementsByName('cased[]')[k].checked){...}
    }

  3. #3
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    il faudrait rajouter ça dans la faq

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 178
    Points : 122
    Points
    122
    Par défaut
    Arg, oui, c'était exactement ça...

    Merci bien!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. recuperer les valeurs checkboxs PHP affichées avec une boucle
    Par programmatrice dans le forum Langage
    Réponses: 1
    Dernier message: 07/04/2012, 19h36
  2. Script avec name checkbox avec crochets []
    Par beninsky dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/02/2009, 16h56
  3. Réponses: 3
    Dernier message: 08/03/2007, 08h51
  4. Recuperer un objet via ArrayList avec Position connu
    Par maxf1 dans le forum Struts 1
    Réponses: 2
    Dernier message: 15/01/2007, 16h51
  5. Réponses: 3
    Dernier message: 12/07/2005, 13h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo