recuperer valeurs d'un select multiple

fafa
Invité n'ayant pas de compte PHPfrance

15 juin 2005, 10:46

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

Mammouth du PHP | 19672 Messages

15 juin 2005, 10:53

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");
}
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

fafa
Invité n'ayant pas de compte PHPfrance

15 juin 2005, 11:01

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

Mammouth du PHP | 19672 Messages

15 juin 2005, 11:24

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 52 Messages

15 juin 2005, 11:28

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';

@+

Eléphant du PHP | 357 Messages

15 juin 2005, 11:31

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.

fafa
Invité n'ayant pas de compte PHPfrance

15 juin 2005, 11:46

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]