Liste déroulante à partir checkbox javascript

Fermé
filoulebauju Messages postés 170 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 octobre 2018 - 24 avril 2008 à 11:20
 rabi3006 - 7 janv. 2010 à 17:27
Bonjour,

Est-il possible de faire apparaitre une liste déroulante à partir du clic sur une checkbox en javascript?

Merci
A voir également:

5 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
25 avril 2008 à 10:45
Bien sur que ce fut une réponse constructive, la preuve tu t'y es mis :)
Et puis il faut arrêter de penser qu'on est là pour tout vous faire : comment veux-tu que je commence quelque chose si je ne sais pas dans quelle direction tu es allé (quel code tu as déjà fait)

Ce qui ne va pas c'est ta fonction javascript : mauvaise déclaration, le code n'est pas exactement bon.

Voilà ce qu'il faudrait faire :
<script>
function checkVisible() {
   // --- Check status of check box, if checked => display list
   if ( document.getElementById('chkutil').checked ){
     document.getElementById('utilisateur').style.visibility = "visible";
   }
   // --- Else hide list
   else {
     document.getElementById('utilisateur').style.visibility = "hidden";
   }
}
</script>


Ceci a insérer avant ton formulaire (c'est toujours mieux avant) :

<script>
function checkVisible() {
   // --- Check status of check box, if checked => display list
   if ( document.getElementById('chkutil').checked ){
     document.getElementById('utilisateur').style.visibility = "visible";
   }
   // --- Else hide list
   else {
     document.getElementById('utilisateur').style.visibility = "hidden";
   }
}
</script>

Utilisateur:<br>
<?php echo $data['nom_utilisateur'].' '.$data['prenom_utilisateur'].'   '?>
<label for ="chk1">
<input type="checkbox" name="chkutil" onchange="checkVisible();">Modifier
<?php
  echo '<select name="utilisateur">'."\n"; 
   
	$sql = "SELECT num_utilisateur, nom_utilisateur, prenom_utilisateur FROM utilisateurs order by nom_utilisateur"; 
	$result = odbc_exec ($odbc,$sql);
   
	while ($data = odbc_fetch_array($result)) 
	{ 
    echo '<option value="'.$data['num_utilisateur'].'"> '.$data['nom_utilisateur'].' '.$data['prenom_utilisateur'].''; 
	}
  echo '</select>'."\n"; 
?>

<script>
// --- Appel une premiere fois pour afficher / cacher la liste selon l etat de la check box
checkVisible();
</script>




Je n'ai pas vérifier le code de ton formulaire mais s'il est correct ça devrait fonctionner.
3
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
24 avril 2008 à 12:02
Bonjour,

Oui, tout est possible. Pour cela il te suffit de mettre un évenement onclick sur ta checkbox, qui appellera une fonction javascript dans laquelle :
- si l'état de la checkbox est 'coché' => faire apparaitre la liste déroulante
- si l'état de la checkbox est 'décoché' => faire disparaitre la liste déroulante

Pour ce qui est de faire apparaitre / disparaitre une liste box, il faut pour cela que tu la mette des le départ dans ton formualire (là ou tu veux qu'elle apparaisse), et ensuite que tu joue sur la propriété javascript suivante :

objet.style.visibility = "visible";
objet.style.visibility = "hidden";

où objet est ta selectBox.

Voilà une piste, fais quelques trucs et si tu n'y arrive pas, montre ton code et pose tes questions.

0
filoulebauju Messages postés 170 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 octobre 2018 8
24 avril 2008 à 16:48
Merci,

C'est ce que j'avais compris, mais c'est vraiment la partie codage de fonction qui me manque.
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
24 avril 2008 à 16:49
Ben... c'est un peu le boulot d'un programmeur, comment savoir faire si l'on vous mâche toujours tout le travail, tu vois ce que je veux dire ;)
0
filoulebauju Messages postés 170 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 octobre 2018 8
25 avril 2008 à 08:57
Merci de cette réponse constructive...
Enfin bref...

Voici le peu de code que j'ai reussi à faire (biensur ça marche pas)
Utilisateur:<br>
<?php echo $data['nom_utilisateur'].' '.$data['prenom_utilisateur'].'   '?>
<label for ="chk1">
<input type="checkbox" name="chkutil" onchange="setVisible();">Modifier
<?php
  echo '<select name="utilisateur" objet.visibility = "hidden";>'."\n"; 
   
	$sql = "SELECT num_utilisateur, nom_utilisateur, prenom_utilisateur FROM utilisateurs order by nom_utilisateur"; 
	$result = odbc_exec ($odbc,$sql);
   
	while ($data = odbc_fetch_array($result)) 
	{ 
    echo '<option value="'.$data['num_utilisateur'].'"> '.$data['nom_utilisateur'].' '.$data['prenom_utilisateur'].''; 
	}
  echo '</select>'."\n"; 
?>


<script>
function setVisible()
valeur_select=document.getElementById('chkutil').value;
document.getElementById('utilisateur').objet.visibility = "visible">;
</script>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blueyes666 Messages postés 10 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 29 juin 2009
29 juin 2009 à 15:03
Bonjour
voila j'ai vu ce qui a été fait pour le traitement des check box et les listes.
mais au faite je voulais savoir comment faire ds le cas inverse ?? je m'explique.
au faite au chargement de ma page j'un select multiple qui se rempli a partir d'une table de ma BD.
apres je vx quand je selectionne un element ou plusieur, j'appui sur un bouton et là il me rajoute un ou plusieurs checkbox portant le nom de l'element selectionner et un label devant le check box.
alors si kk1 a une idée ca serai sympa de sa part.
Merci.
0
:
<script language="Javascript">

function LockUnlockElements() {
if (document.getElementById("nbre_rev1").checked) {
document.getElementById("rev1").style.visibility="visible";
}
else
document.getElementById("rev1").style.visibility="hidden";

}
</script>

<html>

<div>
<input id="nbre_rev1" type="checkbox" value="1rev" onClick="LockUnlockElements()" checked="checked" />1 rev

</div>

<select id="rev1" name="rev1"><option selected></option></select>

</form>
<html>
0