Liste déroulante selon checkbox cochée ou pas
Résolu/Fermé
A voir également:
- Liste déroulante selon checkbox cochée ou pas
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Google sheet liste déroulante - Accueil - Guide bureautique
- Supprimer une liste déroulante excel - Forum Word
- Supprimer liste déroulante excel - Forum Excel
6 réponses
Mopra-L
Messages postés
146
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
23 mai 2012
6
22 févr. 2010 à 15:58
22 févr. 2010 à 15:58
Bonjour,
En piste que je te donnerais, ce serait l'utilisation de Javascript ou AJAX
Soit, en javascript, tu recupere toutes les valeurs des 2 listes, et tu affiche ou masque les listes, selon le choix de la checkbox
Soit, en AJAX, dès que la valeur de la checkbox change, tu fais une requête SQL pour récupérer la liste et modifier la page.
Est-ce que ca répond un peu a ta question ?
En piste que je te donnerais, ce serait l'utilisation de Javascript ou AJAX
Soit, en javascript, tu recupere toutes les valeurs des 2 listes, et tu affiche ou masque les listes, selon le choix de la checkbox
Soit, en AJAX, dès que la valeur de la checkbox change, tu fais une requête SQL pour récupérer la liste et modifier la page.
Est-ce que ca répond un peu a ta question ?
ndsaerith
Messages postés
304
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
10 mai 2017
28
22 févr. 2010 à 17:19
22 févr. 2010 à 17:19
Salut,
j'ai trouvé quelques truc mais il reste à remplir la liste mais je suis dessus ^^
j'ai trouvé quelques truc mais il reste à remplir la liste mais je suis dessus ^^
<html> <Head> <script type="text/javascript"> var listelogs = new Array(); listelogs[0] = new Array(1er log windows","2eme log windows","3eme log windows","4eme log windows"); listelogs[1] = new Array("1er log linux","2eme log linux","3eme log linux","4eme log linux","5eme log linux"); function detectcoche() { if(document.getElementById('choixwin').checked){ if(document.getElementById('choixlin').checked){ remplir_combo('win_lin'); } else { remplir_combo('win'); } } else { if(document.getElementById('choixlin').checked){ if(document.getElementById('choixwin').checked){ remplir_combo('win_lin'); } else { remplir_combo('lin'); } } } } function remplir_combo(mode){ document.formulaire.select2.options.length = 0; switch (mode) { case 'win': alert ('windows'); break; case 'lin': alert ('linux'); break; case 'win_lin': alert ('windows et linux'); break; default: alert ('pas toruvé'); break; } } </script> </head> <body> <FORM id="monform"> <INPUT type="checkbox" id="choixwin" value="win" onChange="detectcoche();" value="Windows" /> Windows <INPUT type="checkbox" id="choixlin" value="lin" onChange="detectcoche();" value="Linux" /> Linux <br><br> <SELECT id="laliste" disabled=true> <OPTION>Veuillez cocher un choix sur la ligne précédente pour accèder à cette liste</OPTION> </SELECT> </FORM> </body> </html>
Merci ndsaerith pour ton script, mais dans ce cas je suis obligé de rentrer tous les logiciels dans le script, alors que je voudrais faire appelle au contenu de la base SQL.
Mopra-L, je recupere les valeurs des 2 listes via une requete sql? mais pareil, comment intégrer une requete SQL dans un javascript ?
dans le script de ndsaerith ça serait de faire un SELECT dans le listelogs[0] = new Array(). Et ça il me semble que ce n'est pas possible.
Nicolas.
Mopra-L, je recupere les valeurs des 2 listes via une requete sql? mais pareil, comment intégrer une requete SQL dans un javascript ?
dans le script de ndsaerith ça serait de faire un SELECT dans le listelogs[0] = new Array(). Et ça il me semble que ce n'est pas possible.
Nicolas.
ndsaerith
Messages postés
304
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
10 mai 2017
28
23 févr. 2010 à 09:16
23 févr. 2010 à 09:16
Re,
Dans la fonction rempllir_combo tu peux mettre ce que tu veux.
Voila un piste qui permet de "partager" les variables entre le php (qui tepermet d(interroger la base) et le js : https://forums.commentcamarche.net/forum/affich-11708410-modifier-variable-php-en-javascript
Dans la fonction rempllir_combo tu peux mettre ce que tu veux.
Voila un piste qui permet de "partager" les variables entre le php (qui tepermet d(interroger la base) et le js : https://forums.commentcamarche.net/forum/affich-11708410-modifier-variable-php-en-javascript
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai trouvé ça, ce n'est pas forcement optimal mais ça marche. Les checkbox sont deja checké, l'utilisateur choisi donc l'OS qu'il veut, et selon ce qu'il décoche, le menu déroulant associé est masqué. :
Le javascript
Les checkbox
L'affichage de la 1ere liste déroulante :
Le 2eme
nous ne voyons pas d'autres explications.
Nicolas.
Le javascript
<script language="JavaScript" type="text/javascript"> // Pour le premier menu déroulant function ChangeStatut(formulaire) { if (formulaire.DEFT_objlist1.checked == 1) { document.getElementById("DISPLAY_obj1").style.display = "block"; } else { document.getElementById("DISPLAY_obj1").style.display = "none"; } } </script> <script language="JavaScript" type="text/javascript"> // pour le deuxieme menu déroulant function ChangeStatut2(formulaire2) { if (formulaire2.DEFT_objlist2.checked == 1) { document.getElementById("DISPLAY_obj2").style.display = "block"; } else { document.getElementById("DISPLAY_obj2").style.display = "none"; } } </script>
Les checkbox
Windows <input name="DEFT_objlist" type="checkbox" id="DEFT_objlist" style="margin-top: 0;" onclick="ChangeStatut(this.form);" checked="checked" /> Linux <input name="DEFT_objlist2" type="checkbox" id="DEFT_objlist2" style="margin-top: 0;" onclick="ChangeStatut2(this.form);" checked="checked" />
L'affichage de la 1ere liste déroulante :
<div id="DISPLAY_obj1"> <?php include('connexion.php'); $requete = "select * from logiciels where DA_MV = 'DA'"; $resultat = mysql_query($requete) or die("erreur dans la requéte $requete"); while ($tableau = mysql_fetch_object($resultat)) $nom_logiciels[] = $tableau->nom_logiciels; echo "<select id='OBJ_int1' name='OBJ_int1'>"; echo "<option> </option>"; for ($i=0;$i<count($nom_logiciels);$i++) echo "<option value='$nom_logiciels[$i]'>$nom_logiciels[$i]</option>"; echo "</select>"; mysql_close(); ?> </div>
Le 2eme
<div id="DISPLAY_obj2"> <?php include('connexion.php'); $requete = "select * from DA_MV"; $resultat = mysql_query($requete) or die("erreur dans la requéte $requete"); while ($tableau = mysql_fetch_object($resultat)) $nom_logiciels[] = $tableau->nom_logiciels; echo "<select id='OBJ_int2' name='OBJ_int2'>"; echo "<option> </option>"; for ($i=0;$i<count($nom_logiciels);$i++) echo "<option value='$nom_logiciels[$i]'>$nom_logiciels[$i]</option>"; echo "</select>"; mysql_close(); ?> </div>
nous ne voyons pas d'autres explications.
Nicolas.
J'ai trouvé ça, ce n'est pas forcement optimal mais ça marche. Les checkbox sont deja checké, l'utilisateur choisi donc l'OS qu'il veut, et selon ce qu'il décoche, le menu déroulant associé est masqué. :
Le javascript
Les checkbox
L'affichage de la 1ere liste déroulante :
Le 2eme
nous ne voyons pas d'autres explications.
Nicolas.
Le javascript
<script language="JavaScript" type="text/javascript"> // Pour le premier menu déroulant function ChangeStatut(formulaire) { if (formulaire.DEFT_objlist1.checked == 1) { document.getElementById("DISPLAY_obj1").style.display = "block"; } else { document.getElementById("DISPLAY_obj1").style.display = "none"; } } </script> <script language="JavaScript" type="text/javascript"> // pour le deuxieme menu déroulant function ChangeStatut2(formulaire2) { if (formulaire2.DEFT_objlist2.checked == 1) { document.getElementById("DISPLAY_obj2").style.display = "block"; } else { document.getElementById("DISPLAY_obj2").style.display = "none"; } } </script>
Les checkbox
Windows <input name="DEFT_objlist" type="checkbox" id="DEFT_objlist" style="margin-top: 0;" onclick="ChangeStatut(this.form);" checked="checked" /> Linux <input name="DEFT_objlist2" type="checkbox" id="DEFT_objlist2" style="margin-top: 0;" onclick="ChangeStatut2(this.form);" checked="checked" />
L'affichage de la 1ere liste déroulante :
<div id="DISPLAY_obj1"> <?php include('connexion.php'); $requete = "select * from logiciels where DA_MV = 'DA'"; $resultat = mysql_query($requete) or die("erreur dans la requéte $requete"); while ($tableau = mysql_fetch_object($resultat)) $nom_logiciels[] = $tableau->nom_logiciels; echo "<select id='OBJ_int1' name='OBJ_int1'>"; echo "<option> </option>"; for ($i=0;$i<count($nom_logiciels);$i++) echo "<option value='$nom_logiciels[$i]'>$nom_logiciels[$i]</option>"; echo "</select>"; mysql_close(); ?> </div>
Le 2eme
<div id="DISPLAY_obj2"> <?php include('connexion.php'); $requete = "select * from DA_MV"; $resultat = mysql_query($requete) or die("erreur dans la requéte $requete"); while ($tableau = mysql_fetch_object($resultat)) $nom_logiciels[] = $tableau->nom_logiciels; echo "<select id='OBJ_int2' name='OBJ_int2'>"; echo "<option> </option>"; for ($i=0;$i<count($nom_logiciels);$i++) echo "<option value='$nom_logiciels[$i]'>$nom_logiciels[$i]</option>"; echo "</select>"; mysql_close(); ?> </div>
nous ne voyons pas d'autres explications.
Nicolas.