Page 1 sur 1

récupérer la valeur d'un select multiple

Posté : 21 oct. 2006, 16:05
par jojolapine
bonjour à tous,
j'essaye actuellement de récupérer la ou les valeurs d'un select multiple en javascript... en php je sais faire, il suffit de mettre un tableau en nom de select, mais en js j'y arrive pas...
voilà ce que j'ai :

Code : Tout sélectionner

<form method="post" action="recherche.php" class="recherche"> Destinataire: <select multiple="multiple" name="destinataire[]" id="select_transfer"> <option value="1">albert</option> <option value="2">jean</option> <option value="3">paul</option> </select> <input type="button" value="Transf&eacute;rer" onCLick="alert(getElementById('select_transfer').value);" /> </form>
seulement avec ça, je n'arrive à récupérer que le dernière valeur... :-(
merci d'avance pour vos éléments de réponse

Posté : 21 oct. 2006, 16:18
par Truc
C'est un peu plus long que ça
function res()
{
	//récupération de l'élément liste
	liste = document.getElementById("select_transfer");
	
	//boucle sur les options
	for ( var i=0; i< liste.options.length; i++) 
	{
		//si l'option est séléctionnée
		if ( liste.options[i].selected == true ) 
		{
			//récupération (affichage de l'élément)
			alert(liste.options[i].value);
		}
	}
}
avec l'événement :
... onclick="res();" ...

Posté : 21 oct. 2006, 16:31
par jojolapine
Tout d'abord merci pour la réponse, mais je n'y arrive pas :-(
j'ai modifié la fonction comme suit:

Code : Tout sélectionner

function res_select_multiple(id) { //récupération de l'élément liste liste = document.getElementById(id); var tab = new Array; var j=0; //boucle sur les options for ( var i=0; i< liste.options.length; i++) { //si l'option est séléctionnée if ( liste.options[i].selected == true ) { //récupération (affichage de l'élément) tab=liste.options[j].value; j++; } } return tab }
et voilà le code du formulaire

Code : Tout sélectionner

<form method="post" action="recherche.php" class="recherche"> Destinataire: <select multiple="multiple" name="destinataire[]" id="select_transfer"> <option value="1">albert</option> <option value="2">jean</option> <option value="3">paul</option> </select> <input type="button" value="Transf&eacute;rer" onCLick="alert(res_select_multiple('select_transfer'));" /> </form>
seulement, cela ne me retourne pas un tableau comme j'aurai voulu, mais une valeur unique.

Posté : 21 oct. 2006, 16:32
par jojolapine
stop !!!
c'est bon je m'était trompé, j'ai oublié de faire tab[j]=...
c'est bon ça fonctionne! merci

Posté : 21 oct. 2006, 17:40
par Truc
Ce qui est bien c'est qu'on trouve des réponses rien qu'en postant :lol:

N'oublis pas le [Résolu]

Posté : 22 oct. 2006, 15:29
par jojolapine
je me permet juste de modifier une erreur pour si il y en a qui souhaiterai reprendre la fonction:

Code : Tout sélectionner

function res_select_multiple(id) { //récupération de l'élément liste liste = document.getElementById(id); var tab = new Array; var j=0; //boucle sur les options for ( var i=0; i< liste.options.length; i++) { //si l'option est séléctionnée if ( liste.options[i].selected == true ) { //récupération (affichage de l'élément) tab[j]=liste.options[i].value; j++; } } return tab }
voilà cette fonction est opérationelle pour n'importe quel select multiple :wink: