Aller au contenu

Problème dans un textarea


DeSign-MasTer

Sujets conseillés

Bonsoir à tous,

J'aimerais savoir comment je pourrais faire pour quand on écrit un texte

dans un <textarea> et qu'à chaque fois qu'on saute une ligne et que la

personne envoie ce qu'il à écrit, comment faire pour que dans ma bdd

ça arrive avec le texte puis à chaque saut de ligne que ça ajoute un <br>

pour que quand j'affiche le texte sur une autre page il y est bien les sauts

de ligne que l'utilisateur a fait..

J'espère que je suis assez clair, sinon demandez moi.

Merci

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

L'idéal est de sauvegarder les données telles que l'utilisateur les a entrées (en faisait les vérifications d'usage pour assurer que les données sont sûres) et lorsque tu les affiches par la suite d'utiliser la fonction nl2br pour convertir les newlines en balises <br />.

Un autre conseil, lorsque tu présentes un problème, prend la peine de te relire (orthographe et grammaire) et de former plusieurs phrases au lieu d'une seule de 6 lignes, c'est beaucoup plus clair et cela facilite la lecture pour les personnes susceptibles de t'aider ;)

**EDIT** Grillé pour la fonction ;) Mon second conseil reste valable :)

Lien vers le commentaire
Partager sur d’autres sites

tu fais tout simplement un "str_replace" :

str_replace("\n",'<br />','ton texte')

cette fonction remplace les \n, qui représentent un retour à la ligne quand tu tape un texte dans une textarea, par des <br /> html a l'affichage.

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

En fait j'ai un nouveau problème, c'est que à chaque fois que je modifis mon texte dans

le <textarea> il rajoute à chaque fois des <br> en plus dans ma table ou je stock le texte

Voilà mon code que j'ai :

$texte = $_POST["texte"];
$texte = nl2br($texte);
$texte = str_replace('<br />','<br>',$texte);
$texte = addslashes($texte);

Si vous avez une solution je suis preneur :whistling: ?

Modifié par DeSign-MasTer
Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Comme je te l'ai dit, c'est pour cela que tu devrais enregistrer les données telles que l'utilisateur les a saisies (sans <br />, mais avec les sauts de lignes) et seulement lorsque tu vas afficher tu utilises la fonction nl2br.

Ou alors tu codes une fonction br2nl toi-même et tu l’appliques avant d'envoyer les données dans le <textarea> pour l'édition :

function br2nl($text)
{
return preg_replace('/<br\\s*?\/??>/i', '', $text);
}

Source : Commentaires de nl2br

Mais la première solution est selon moi la meilleure, imaginons que tu fasse un moteur de recherche par la suite, les données seront parasitées par ces balises <br/> ajoutée par la fonction nl2br.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

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



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