Page 1 sur 1
probleme d'option en html avec php
Posté : 04 févr. 2007, 18:55
par walfrat
Bonjour
Voila le probleme n'est pas évident a expliquer par le titre voici le probleme :
<option SELECTED value="<?php echo $donnees['Comp1']; ?>"> <?php echo $donnees['Comp1']; ?> </option>
en principe c'est censé affiché la valeur par defaut de ce champ car cela e trouve dans une interface de modification mais ca affiche un blan
la raison je la connais la valeur de $donnees['Comp1'] Contient un "<br/>"
ce que je voudrais c'est que la compétence s'affiche sur une ligne mais que dans "value" elle garde son "<br/>"
Par exmple ici je veux :
Code : Tout sélectionner
<option value="Arme élémentaire <br /> (avancé)">Arme élémentaire (avancé) </option>
Posté : 04 févr. 2007, 19:27
par Arcanis
Salut!
Essaye avec ça:
<option SELECTED value="<?php echo $donnees['Comp1']; ?>"> <?php str_replace("<br/>","",echo $donnees['Comp1']); ?> </option>
Posté : 05 févr. 2007, 12:57
par walfrat
le echo donne un parse error en le sortant ca change rien je vais essaye rautre chose pour voir;...
non plus j'ai essayé avec le htmlentities pour suprrimer le br mais ca marche pas y'a peut etre autre chose qui gene ....
Posté : 05 févr. 2007, 13:04
par Ryle
htmlentities() me semble tout à fait approprié pour la value, et le str_replace() devrait fonctionner pour le libellé, mais le echo est mal placé
<option SELECTED value="<?php echo $donnees['Comp1']; ?>">
<?php echo str_replace("<br />", "", $donnees['Comp1']); ?>
</option>
Attention également à bien vérifier la syntaxe "<br/>" ou "<br />"

Posté : 05 févr. 2007, 14:13
par walfrat
non plus j'avais deja essayé ainsi et j'ai reassayer
Note : j'utilise plusieur champ : seul ceux dans lequel un est présent plantte
Mais il n'y a pas le retour a la ligne aussi (/n je crois ) ?
j'ai essayé de virer les deux mais ca ne marche toujours pas
Posté : 05 févr. 2007, 15:12
par mere-teresa
Note : j'utilise plusieur champ : seul ceux dans lequel un est présent plantte
Un quoi ? Un retour chariot ?
Pourquoi garder la balise <br> dans la value ?
Tu es conscient que la value c'est ce que ton programme spécifié dans l'attribut action va recevoir, et qu'il te faudra traiter ces données avec la plus grande circonspection (comme ôter les espaces, vérifier qu'il n'y a pas d'injection SQL, etc... ) avant de les utiliser ?
Posté : 06 févr. 2007, 12:39
par walfrat
oups desolé seul ceux qui ont un br plante sinon ca marche
Pour le br je l'avais mis car dau depart ca servait das un tableau de grande dimension mais comme je l'ai diminué le texte revient automatiquement a la ligne...
Sinon j'avais une solution : je met dans une table les données de la liste option
je les tri par nom puis avec un mysql_fetch_array je fait :
{
if($_POST["Comp1"]==$nom)
{
echo "<option SELECTED value=\"".$_POST["Comp1"]."\">".$_POST["Comp1"]."</option>";
}
else {meme chose dans le SELECTED}
}
Seulement ca m'embetait de passer par la base de données
Pour l'injection SQL je m'en suis pas encore occupé mais j'ai un livre sur le PHP 5
Et evidemment j'ai une copie de la BDD au chaud^^
Posté : 06 févr. 2007, 16:46
par iclo
Point de vue, méthodologie, j'évite de passer dans les champs values des listes des chaines de caractères. Si les différentes options proviènnent d'une base de donnée, il est beaucoup plus simple d'utiliser l'id de l'option. (Ce qui permet en outre de garantir de chaque options est unique, même si son "texte" ne l'est pas)
ex:
Code : Tout sélectionner
<option value="1" <br /> (avancé)">Arme élémentaire (avancé) </option>
Sans compter que si c'est pour l'inserer dans une base de donnée, il faut éviter de sauvegarder à chaque fois tout l'intitulé de l'option et seulement son numéro.
Posté : 06 févr. 2007, 16:48
par mere-teresa
<option value="Arme élémentaire <br /> (avancé)">Arme élémentaire (avancé) </option>
Cela est complètement incorrect par exemple ^ on ne met pas de balise dans la value d'un attribut d'une balise.
Posté : 06 févr. 2007, 19:56
par Invité
bah c'est ce que j'avais fait bah c'est pas grave j e vais corriger ca de suite
De plus pour virer ce qu'il y a deja dans la bdd je pense pouvoir faire ca par php plutot que de tout modifié un par un...
Merci pour vos reponse

Posté : 06 févr. 2007, 20:00
par walfrat
désolé j'avais encore oublier de me connecter...
Donc c'est bon c'est corrgier y'a pu qu'a mettre en ligne^^