Page 1 sur 1

Mettre une chaine de caractère en value d'un select

Posté : 21 janv. 2009, 16:01
par eLman
Ce que je cherche à faire est à priori simple, mais je reste bloqué !

Je constitue une liste déroulante en la remplissant dynamiquement depuis ma base de données.
Cette liste me permet d'obtenir tous les niveaux scolaires de mes livres afin d'effectuer une recherche dessus. Par exemple connaître les livres du niveau CM1/CM2 etc ...


Je créé ma liste (en POST), je fais ma requête SQL et ensuite voice mon code :

Code : Tout sélectionner

print "<option value=" . $Niveau_serie; print ">". $Niveau_serie . "</option>";
Je suis obligé de passer en value ma chaine de caractère puisque il n'existe pas dans ma base de table "niveau scolaire", ils sont directement rentré en "dur" dans la table livre.

Donc le soucis, quand je sélectionne un niveau scolaire et que je lance la recherche, il ne prend en compte que les caractères avant un espace ! Dès qu'il y a un espace il s'arrête.

Ma question existe-il une fonction permettant de passer une chaine de caractère comme value dans un select ?!

Merci.

Posté : 21 janv. 2009, 18:12
par Ryle
Deux petites choses... la première, si les valeurs de tes options sont égales aux libellés, il n'est pas nécessaire de les renseigner. En effet, une option sans attribut value va renvoyer le texte associé.
print "<option>". $Niveau_serie . "</option>"; 
Deuxième point, en html, les attribut des balises doivent être délimités par des guillemets ou des apostrophes. Le langage tolère toutefois que celle-ci ne soient pas délimitée, mais dans ce cas, le moindre espace dans la chaine va signifier pour lui que la valeur de l'attribut est terminée :)
print "<option value='".$Niveau_serie ."'>". $Niveau_serie . "</option>"; 

Posté : 22 janv. 2009, 10:00
par eLman
Je te remercie, ça marche impeccable !

Posté : 22 janv. 2009, 15:49
par AB
Deuxième point, en html, les attribut des balises doivent être délimités par des guillemets ou des apostrophes. Le langage tolère toutefois que celle-ci ne soient pas délimitée, mais dans ce cas, le moindre espace dans la chaine va signifier pour lui que la valeur de l'attribut est terminée :)
Précision pour les débutants : ne pas utiliser cette tolérance

Posté : 23 janv. 2009, 11:55
par naholyr
N'oubliez pas htmlspecialchars() non plus hein...