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

Eléphanteau du PHP | 49 Messages

21 janv. 2009, 16:01

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

21 janv. 2009, 18:12

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>"; 
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 49 Messages

22 janv. 2009, 10:00

Je te remercie, ça marche impeccable !

ViPHP
AB
ViPHP | 5818 Messages

22 janv. 2009, 15:49

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

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

23 janv. 2009, 11:55

N'oubliez pas htmlspecialchars() non plus hein...