Page 1 sur 1

recuperer valeurs d'un select multiple

Posté : 15 juin 2005, 10:46
par fafa
Je possède un formulaire avec une liste
<select name="keywords" size="4" multiple>
<option value="Mot clé 1">Mot clé 1
<option value="Mot clé 2">Mot clé 2
</select>
Je recupère ensuite la valeur dans une autre fichier comme ceci
$keywords = $_POST['keywords'];
Je suis très étonné car lorsque j'affiche cette variable , je constate que le programme ne recupere pas toutes les valeurs selectionnées dans la liste.
Seulement, une seule, la derniere me semble t-il.

Comment se fait-il , moi il me faut recuperer toutes les valeurs selectionnées dans ma liste multiple

Merci

Posté : 15 juin 2005, 10:53
par Cyrano
modifie le name du select:
<select name="keywords[]" size="4" multiple> 
Tu récupèreras un tableau indexé contenant toutes les valeurs sélectionnées:
$keywords = $_POST['keywords'];
$nb = count($keywords);
for($i = 0; $i < $nb; $i++)
{
    echo("<p>". $keywords[$i] ."</p>\n");
}

recuperer valeurs d'un select multiple

Posté : 15 juin 2005, 11:01
par fafa
oui je te remercie cela fonctionne mais j'ai fait un Javascript qui n'apprecie
pas la manipulation de mon tableau keywords[], par exemple

document.formIndex.keywords.options[selectedIndex].value = 'toto';
ou
document.formIndex.keywords[].options[selectedIndex].value = 'toto'; 
me provoque une erreur a l'affichage du formulaire.

Le probleme est maintenant ailleurs, ce n'est pas du php mais quelqu'un a peut-etre la reponse.
Comment manipuler cette select multiple maintenant que c'est un tableau?
Merci

Posté : 15 juin 2005, 11:24
par Cyrano
A priori de la même manière dans une boucle JavaScript. Je ne m'avenrure pas au delà, je suis nettement moins bon en JavaScript.

Posté : 15 juin 2005, 11:28
par patbator
hello,

hyper simple de contourner ton blem javascript, plutot que de te baser sur un name base toi sur un id.

Tu laisse le name sur ton select comme il est et tu lui ajoute id="cketuveux" :

<select name="keywords[]" size="4" id="cketuveux" multiple>

Du coup ton js devient

document.getElementById("cketuveux").options[selectedIndex].value = 'toto';

@+

Posté : 15 juin 2005, 11:31
par seayoung
juste rien a voir mais quand je vois une balise ouverte et qui n'est pas fermée ca me fait bondir !!!!
<option> et une balise elle s'ouvre donc elle se ferme aussi </option>

si on ne commence pas par coder proprement on se retrouvera avec bcp de problème de plus si certain navigateur l'accepte d'autre qui respecte la w3c ne l afficheront pas.

recuperer valeurs d'un select multiple

Posté : 15 juin 2005, 11:46
par fafa
J'ai trouvé entre temps la solution sur un forum Javascript.

En effet la fonction getElementById() résoud le probleme.

Je recupere ensuite dans le second fichier mon champ et j'affiche toutes les valeurs du tableau.

Donc un grand merci à patbator et a Cyrano et promis je fermerai toutes mes balises <option>

[RESOLU]