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

ViPHP
ViPHP | 3607 Messages

21 oct. 2006, 16:05

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

21 oct. 2006, 16:18

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();" ...

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
ViPHP | 3607 Messages

21 oct. 2006, 16:31

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.

ViPHP
ViPHP | 3607 Messages

21 oct. 2006, 16:32

stop !!!
c'est bon je m'était trompé, j'ai oublié de faire tab[j]=...
c'est bon ça fonctionne! merci

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

21 oct. 2006, 17:40

Ce qui est bien c'est qu'on trouve des réponses rien qu'en postant :lol:

N'oublis pas le [Résolu]

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
ViPHP | 3607 Messages

22 oct. 2006, 15:29

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: