Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/07/2011, 14h09   #1
Invité régulier
 
Inscription : janvier 2011
Messages : 27
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 27
Points : 6
Points : 6
Par défaut Selectionner toutes les CheckBoxs avec boucle imbriquée.

Bonjour à tous,

le titre n'est pas très claire mais je ne peux faire mieux.
Via un bouton 'select all' toutes mes checksbox doivent ou non se cocher.
J'ai trouver un code qui fonctionne très bien quand dans le formulaire il n'y a qu'une seule boucle.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript">
function Check_all(container_id,state)
 {
  var checkboxes = document.getElementById(container_id).getElementsByTagName('input');
  for (var i=0;i<checkboxes.length;i++)
   {
    if(checkboxes[i].type == 'checkbox')
     {
      checkboxes[i].checked = state;
     }
   }
  return true;
 }
avec en html

Code :
1
2
3
4
5
6
7
<form method="post" id="chkuv">
                                        <?php 
                                        $i=0;
                                        foreach($ppo->uvLibCourt as $uv){ ?>
                                                <input type="checkbox" name="<?php echo $uv; ?>">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="info" href=""><?php echo $uv; ?><span class="uv"><?php echo $ppo->uvLibLong[$i]; ?></span></a>
                                        <?php $i++; } ?>         
                                    </form>
Ce code fonctionne parfaitement, mais pour un autre tableau mon html change un peu pour devenir.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<form method="post" id="chkuv">
                        <?php 
                        $i=0; 
                        foreach($ppo->uvs as $uv){ ?>
                            <tr> 
                                <td class="info_horaires">
                                        <input type="checkbox" name="<?php echo $uv->ID_UV; ?>">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="info" href=""><?php echo $uv->UV_LIBELLE_COURT; ?><span class="uv"><?php echo $uv->UV_LIBELLE_LONG; ?></span></a>                     
                                    <?php for($j=0;$j<$ppo->nbSem;$j++) {?>
                                        <td valign="top" class="other_day calendar_td" id="<?php echo blabla; ?>"> </td>
                                    <?php } ?>
 
                                </td> 
                            </tr>
                        <?php $i++; } ?>         
                      </form>
La fonction js elle ne change pas.

En gros dans le deuxième cas, au lieu d'un tableau simple, j'ai un tableau à 2 entrées (donc boucle imbriqué). Et pour je ne sais quelle raison, la fonction js ne récupère plus les checkboxes.

Si quelqu'un a une explication je suis vivement intéressé. Merci d'avance ).
Azaxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 14h15   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 260
Points : 7 260
Bonjour,

1- à lire Important : Les règles incontournables d'utilisation de ce forum

2- montre nous le comment tu fais appel à la fonction.
Tu dois utiliser un checkbox du genre
Code :
<input type="checkbox" name="toto" onclick="Check_all('chkuv',this.checked)">
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 14h18   #3
Invité régulier
 
Inscription : janvier 2011
Messages : 27
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 27
Points : 6
Points : 6
Pour l'appel de la fonction, oui c'est presque cela.

Code :
1
2
                        <input type="button" value="Tout coher" onClick="Check_all('chkuv', true);"/>
                    <input type="button" value="Tout décocher" onClick="Check_all('chkuv', false);"/>
Désolé si mon message n'étais pas en bonne et due forme, je le pensais.
Azaxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 14h25   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 260
Points : 7 260
Citation:
Envoyé par Azaxx Voir le message
Désolé si mon message n'étais pas en bonne et due forme, je le pensais.
Montre nous ton code HTML généré
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 14h29   #5
Invité régulier
 
Inscription : janvier 2011
Messages : 27
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 27
Points : 6
Points : 6
Escuse moi pour la lenteur de ma réaction )

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
<form id="chkuv" method="post"></form>
<tr>
<td class="info_horaires">
<input type="checkbox" name="9">
<a class="info" href="">
ST312GL
<span class="uv">Génie Logiciel</span>
</a>
</td>
<td id="blabla" class="other_day calendar_td" valign="top"> </td>
<td id="blabla" class="other_day calendar_td" valign="top"> </td>
{...}
</tr>
<tr>
<td class="info_horaires">
<input type="checkbox" name="7">
<a class="info" href="">
ST221ML
<span class="uv">Management de la chaine logistique</span>
</a>
</td>
<td id="blabla" class="other_day calendar_td" valign="top"> </td>
<td id="blabla" class="other_day calendar_td" valign="top"> </td>
{...}
</tr>
EDIT :

Code :
<form id="chkuv" method="post"></form>
Pour je ne sais quelle raison le form se ferme avant mon code ci-dessus
Azaxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 14h35   #6
Invité régulier
 
Inscription : janvier 2011
Messages : 27
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 27
Points : 6
Points : 6
Bon ba j'ai trouvé la solution.

C'est le fait de regarder mon code généré HTML qui ma mis la puce à l’oreille.

Il faut juste que j'écarte encore plus mes balises de form. pour encadrer tout le <table> et pas juste mes boucles.

Tout fonctionne mais cela ne m'explique toujours pas pourquoi je ne peux pas juste encadrer mes boucles avec mon <form>

As-tu une idée?
Azaxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 14h40   #7
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 793
Points : 35 793
C'est surtout qu'il ne faut pas mettre un formulaire dans une table...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/07/2011, 14h51   #8
Invité régulier
 
Inscription : janvier 2011
Messages : 27
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 27
Points : 6
Points : 6
Citation:
Envoyé par Bovino Voir le message
C'est surtout qu'il ne faut pas mettre un formulaire dans une table...
C'est vrai, mais comme pour mon autre tableau cela fonctionnait, je pensais que...

J'ai essayé avec une div mais le problème restait le même, a partir du moment ou j'ai mes boucles imbriqué je dois mettre mon <form> a l’extérieur.

Donc en résumé, je ne dois avoir qu'un seul <form> par tableau, et après pour dynamiser les différents éléments composant ce form je les cibles via le js. (et donc pas un <form> pour chaque élément du tableau que je souhaite dynamiser).

Dans tout les cas, merci à vous deux qui prenez le temps de répondre (rapidement en plus) à nos questions. Vous êtes géants )
Azaxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h19.


 
 
 
 
Partenaires

Hébergement Web