Aller au contenu

comment stocker en bdd le contenu d'un textarea?


Sujets conseillés

Posté

Bonjour,

Afin de pouvoir laisser des commentaire à certain article, j'ai mis un textarea que je sauvegarde en bdd

et quand je refais appel au texte stocké pour l'afficher dans un <p></p>, il n'a pas gardé la mise en forme.

apparemment en faisant un strreplace du \n par un <br> j'arrive à passer à la ligne

par contre je n'arrive pas à gerer les espaces, il n'en n'affiche q'1 seul à chaque fois, même si il y en a 10...

il y a peu etre une autre méthode?

des pistes?

Posté

Pour remplacer les retours chariots par des <br>, il existe une fonction de PHP : nl2br().

Quant aux espaces successifs, le code HTML les supprimera toujours.

Pour les afficher, il faut les afficher entre balises <pre></pre>, qui est destinée à afficher un code préformaté, ou bien d'attribuer la propriété CSS "whitespace: pre".

Posté

thanks!

apparemment en faisant strreplace de " " par des &nbsp ça fonctionne

pas très propre comme code... mais bon...

Posté

Surtout que tu risques d'avoir des soucis : le &nbsp étant un espace insécable, il n'autorise pas le retour à la ligne. Tu vas te retrouver avec des lignes de deux kilomètres de long.

Tu as essayé la solution CSS ?

Posté

Salut Luc.

La solution CSS est de loin la meilleure.

Mais si tu tiens vraiment à remplacer les espaces par des espaces insécables, il faudra compter le nombre d'espaces.

Si 1 seul espace: on ne fait rien.

Si +: le premier espace reste intact, les autres sont remplacés par des espaces insécables (& 160 ; ou & nbsp ; -sans les espaces, justement-).

Sinon, tu risques effectivement de te retrouver avec des messages qui tiennent sur une seule ligne comme le fait remarquer captain_torche.

Regarde dans le code source de PunBB, tu as une fonction qui fait exactement ça (et c'est en license GPL ;))

Pour finir, la question qui me taraude: pourquoi faire ?

- En connaissant le contexte, on sera plus à même de fournir la meilleure piste

- Dans cette phrase, il y a 26 espaces entre les mots "cette" et "phrase" et tu ne les vois pas à l'affichage, est-ce vraiment gênant?

Posté

merci à vous,

je n'ai rien contre la solution css mais j'avoue ne pas connaitre de solution (meme pas une idée de solution via le css :blush: ) même si je connais globalement le fonctionnement general du css

le but étant simplement

de récuperer un contenu entré dans un textarea par un visiteur

qui, pour que son texte soit lisible, a certaines habitudes d'aérer un peu ses phrases en passant à la ligne , en faisant des décalages de début de phrase et pire... quelque fois des décalage au mileu d'une phrase...

par contre , mon titre de ce post n'est pas vraiment bon, car actuellement, le contenu du textarea est stocké tel quel en bdd, le traitement sur la chaine de caractère se faisant apres coups au moment de l'affichage dans la page

de ce fait il n'y a que des \n et " " qui sont stockés

je suis aware à tout debut de piste ;)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...