Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1498 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] Connaître la valeur d'une checkbox

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JS] Connaître la valeur d'une checkbox

n°1811205
superjarod​d
Posté le 12-11-2008 à 15:51:37  profilanswer
 

Bonjour,  
 
J'ai un formulaire avec une liste de cases (extraction de la bdd), toutes cochées par défaut. En cliquant sur un bouton, une popup s'ouvre, et fait un récap des cases cochées, avant de les insérer en base.
 
Le problème : sur ma liste de x cases, j'en décoche quelques unes, mais sur la popup, elles apparaissent en état 'coché'. Logique puisque c'est l'état de chargement de la page mère. Mais je ne parviens pas à connaître leur état au moment du clic sur le bouton.
 
Voilà mon code (simplifié) pour les cases :

Code :
  1. <?php
  2. $CodeHtml[1] = '<input name="prg[]" value="TAB0" checked="checked" type="checkbox">TAB0<br><input name="prg[]" value="TAB1" checked="checked" type="checkbox">TAB1<br><input name="prg[]" value="TAB2" checked="checked" type="checkbox">TAB2<br><input name="prg[]" value="TAB3" checked="checked" type="checkbox">TAB3<br><input name="prg[]" value="TAB4" checked="checked" type="checkbox">TAB4<br>';
  3. ?>
  4. <input type="hidden" id="CasesNb" value="<?php echo $CodeHtml[0]; ?>" />
  5. <input type="hidden" id="CasesListe" value="<?php echo htmlentities($CodeHtml[1]); ?>" />
  6. <input type="button" name="CreateList" value ="Créer une liste" onClick="CreateList();" />


 
Code du traitement JS (appelé par la fonction CreateList() du bouton) :

Code :
  1. [...]
  2. <head>
  3. <script language="JavaScript" type="text/javascript">
  4. function AffRef() {
  5. var CasesNb = window.opener.document.getElementById('CasesNb').value;
  6. var CasesListe = window.opener.document.getElementById('CasesListe').value;
  7. // Liste des programmes sélectionnés
  8. document.write("Liste des programmes sélectionnés : <br />" );
  9. document.write("<div style=\"background-color : #FFFFE0; height:180px; overflow : auto;\">" );
  10. // on boucle sur toute la liste de programmes
  11. for ( cpt = 0; cpt < CasesNb; cpt++ )
  12. var explode = function(str, sep) { return str.split(sep); }
  13. var CasesListeTab = explode(CasesListe, '<br>'); // on sépare chaque ligne du tableau
  14. var pattern = 'checked="checked"';
  15. document.write("Affichage n°" + cpt + " : " + CasesListeTab[cpt] + "<br>" );
  16. if( CasesListeTab[cpt].indexOf(pattern) != -1 ) {
  17. document.write(cpt + " est coché<br />" );
  18. } else document.write(cpt + " n'est pas coché<br />" );
  19. }
  20. document.write("</div>" );
  21. }
  22. </script>
  23. </head>
  24. <body>
  25. <script language="JavaScript" type="text/javascript">
  26. AffRef();
  27. </script>


 
(désolé je ne parviens pas à recréer l'indentation...)
 
Existe-t-il une fonction qui "capture" la valeur des cases cochées au moment du clic sur le bouton, et pas au chargement initial de la page ? Merci d'avance pour votre aide !

mood
Publicité
Posté le 12-11-2008 à 15:51:37  profilanswer
 

n°1811256
tpierron
Posté le 12-11-2008 à 17:37:51  profilanswer
 

Oulala, ton code refoule méchamment la bidouille maintenue à coup de béquilles et de rustines, qui va s'écrouler au moindre coup de vent (ouais, chuis dur là, mais ça percute mieux comme ça).
 
Franchement mettre du HTML dans un champ input.hidden pour parser après ça en javascript, il y un peu plus simple, même avec une archie complètement pourrie derrière.
 
Par exemple :

Code :
  1. // Récupère une référence de l'élément englobant tes checkbox
  2. var div = window.parent.document.getElementById("mescheckbox" )
  3.  
  4. // Récupère tous les "input" qu'il y a dedans
  5. var cbs = div.getElementsByTagName("input" )
  6.  
  7. // Vérifié l'état des checkbox
  8. for (var i in cbs)
  9. {
  10.    if (cbs[i].type == "checkbox" )
  11.        alert("Checkbox " + cbs[i].name + ": " + cbs[i].checked)
  12. }


n°1811281
superjarod​d
Posté le 12-11-2008 à 18:18:40  profilanswer
 

Ouaip j'en suis conscient, mais je reprend le projet, j'ai déjà du mal à m'y retrouver donc je n'ai pas le temps de tout remettre à plat :)
 
Je teste ton code demain matin, merci !

n°1811426
superjarod​d
Posté le 13-11-2008 à 08:28:58  profilanswer
 

Bonjour,  
 
Je ne comprend pas l'élément englobant les checkbox ("mescheckbox" ) : est-ce que c'est le nom du formulaire ? Un div class à ajouter ?

n°1811682
tpierron
Posté le 13-11-2008 à 16:16:08  profilanswer
 

N'importe quelle balise qui englobe tes <input type="checkbox">, à la limite la balise body (mais là tu vas vraiment tout avoir).


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] Connaître la valeur d'une checkbox

 

Sujets relatifs
[PHP] Librairie graphique php - Valeur du point en survolActiver un checkbox
Communication JS et PHP[NSIS] CheckBox le + simple, ajout de checkbox au dernier ecran
Pb de background pour un menu déroulant JsConnaitre le nom d'une classe enfant (sans l'instancier)
javascript, appelle mauvaise valeurUtiliser les lignes d’un tableau JS
setAutoCreateRowSorter JTable avec checkBox[JS] clean word et expression régulière
Plus de sujets relatifs à : [JS] Connaître la valeur d'une checkbox


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR