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 :
- <?php
- $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>';
- ?>
- <input type="hidden" id="CasesNb" value="<?php echo $CodeHtml[0]; ?>" />
- <input type="hidden" id="CasesListe" value="<?php echo htmlentities($CodeHtml[1]); ?>" />
- <input type="button" name="CreateList" value ="Créer une liste" onClick="CreateList();" />
|
Code du traitement JS (appelé par la fonction CreateList() du bouton) :
Code :
- [...]
- <head>
- <script language="JavaScript" type="text/javascript">
- function AffRef() {
- var CasesNb = window.opener.document.getElementById('CasesNb').value;
- var CasesListe = window.opener.document.getElementById('CasesListe').value;
- // Liste des programmes sélectionnés
- document.write("Liste des programmes sélectionnés : <br />" );
- document.write("<div style=\"background-color : #FFFFE0; height:180px; overflow : auto;\">" );
- // on boucle sur toute la liste de programmes
- for ( cpt = 0; cpt < CasesNb; cpt++ )
- var explode = function(str, sep) { return str.split(sep); }
- var CasesListeTab = explode(CasesListe, '<br>'); // on sépare chaque ligne du tableau
- var pattern = 'checked="checked"';
- document.write("Affichage n°" + cpt + " : " + CasesListeTab[cpt] + "<br>" );
- if( CasesListeTab[cpt].indexOf(pattern) != -1 ) {
- document.write(cpt + " est coché<br />" );
- } else document.write(cpt + " n'est pas coché<br />" );
- }
- document.write("</div>" );
- }
- </script>
- </head>
- <body>
- <script language="JavaScript" type="text/javascript">
- AffRef();
- </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 !