[HTML-JavaScript] Bouton "tout sélectionner" dans une liste déroulante

Bouton "tout sélectionner" dans une liste déroulante [HTML-JavaScript] - HTML/CSS - Programmation

Marsh Posté le 23-03-2005 à 17:29:49    

Bonjour,
 
Je recherche depuis pas mal de temps une solution simple pour permettre de sélectionner toutes les options d'une liste dans un formulaire sans recharger la page. Il me semble que le javaScript est encore la solution la plus adaptée pour évter de recharger la page.
 
Il me semble qu'une boucle permettrait de faire cela, mais le problème, c'est la syntaxe !
 
Si vous avez des solutions, n'hésitez pas !


Message édité par __max__ le 23-03-2005 à 17:31:04

---------------
La « logique SNCF » ou comment escroquer ses clients.
Reply

Marsh Posté le 23-03-2005 à 17:29:49   

Reply

Marsh Posté le 23-03-2005 à 21:57:09    

Personne n'a de réponse à ce problème ? C'est vrai que j'ai trouvé quelques bouts de scripts, mais ils sont pas terrible et ils ne fonctionnent pas corectement. Je ne dois pas être le seul à vouloir réaliser cette fonction et je l'ai vu plusieurs fois. Il doit donc y avoir une solution....
 
Je vous mets ce que j'ai trouvé, l'esprit est là, mais il doit y avoir des erreurs de syntaxe !!!
 
// Traitement après post et affichage des valeurs du champ select
if(isset($_POST['Col1']) && !empty($_POST['Col1'])){
    $Col1_Array = $_POST['Col1'];  
    foreach($Col1_Array as $selectValue){
    echo $selectValue."<br>";
    }
}
?>
<html>
<head>
<title>Recuperer valeur select dans variable php</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 
<script>
function PostSelect(liste){
    // On compte le nombre d'item de la liste select
    NbCol1 = document.forms[liste].elements.Col1.length;
     
    // On lance une boucle pour selectionner tous les items
    for(a=0; a<NbCol1; a++){
    document.forms[liste].elements.Col1.options[a].selected = TRUE;
    }
     
    // On modifie l'ID  du champ select pour que PHP traite cette  
    // dernière comme un array
    document.forms[liste].elements.Col1.name = "Col1[]";
 
    // On soumet le formulaire
    document.forms[liste].submit();
}
</script>
</head>
 
<body>
<form name="Liste1" method="post" action="capture_select.php" onSubmit="PostSelect(this.name)">
    <select name="Col1" size="4" multiple style="width: 150px">
    <option value="Valeur 1">Valeur 1</option>
    <option value="Valeur 2">Valeur 2</option>
    <option value="Valeur 3">Valeur 3</option>
    <option value="Valeur 4">Valeur 4</option>
    <option value="Valeur 5">Valeur 5</option>
    </select><br><br>
    <input name="Envoyer" type="submit" value="Envoyer" />
</form>
</body>
</html>
 
Merci d'avance à tous pour votre participation sur ce problème qui doit en toucher plus d'un ...!


Message édité par __max__ le 23-03-2005 à 21:59:33

---------------
La « logique SNCF » ou comment escroquer ses clients.
Reply

Marsh Posté le 23-03-2005 à 22:37:56    

Code :
  1. <form id="form1" method="get">
  2. <select id="list1" name="list1" size="13" multiple="multiple">
  3. <option>
  4. ...
  5. ...


Code :
  1. function tout() {
  2. limit = document.forms['form1'].elements['list1'].options.length;
  3. for ( i=0; i<limit && i<99; i++ )
  4.  document.forms['form1'].elements['list1'].options[i].selected = true;
  5. }


C'est ce que j'utilise, simple et efficace.
Y'a aussi moyen avec les DOM child etc...

Reply

Marsh Posté le 25-03-2005 à 15:12:58    

Merci pour ta réponse.
 
J'ai réussi à faire ce fameux bouton tout selectionner.
 
Par contre j'ai l'impression que pour faire un bouton tout désélectionner, il ne suffut pas de mettre :
 

Code :
  1. document.forms['form1'].elements['list1'].options[i].selected = false;


 
Mais bon, j'ai peut être fait une erreur de syntaxe...
 
 
Merci oirom pour ce coup de main !!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed