Les Allergies
Alimentaires
Posez votre question Signaler

Textarea et retour à la ligne

Paul-Hewson 7Messages postés 9 mars 2005Date d'inscription - Dernière réponse le 23 août 2011 à 09:23
Bonjour,

Voilà mon petit problème..

J'ai un formulaire avec un textarea, dans ce textarea l'utilisateur peut faire des retours à la ligne quand il veut pour structurer son texte.

Hors si je rentre ce texte dans une base de donnée mysql tel quel, si jamais je le ressort pour l'afficher les retours à la ligne auront disparus.

Je me demandai comment récupérer les retours à la ligne de l'utilisateur pour y insérer une balise <br />.

On m'a parlé de fonction nl2br et wordwrap. Mais j'ai eu beau me creuser la tête pour essayer de les comprendre, j'en suis pas loin de 0 encore ^^

Voilà, si y a quelqu'un pour m'aider, merci d'avance :)
Lire la suite 

Textarea et retour à la ligne »

13 réponses
Réponse
+17
moins plus
Bonsoir
si infos est le nom du champ textarea
$infos = nl2br( $infos );
Paul-Hewson- 27 mars 2005 à 23:10
Bien merci de m'avoir expliqué que c'était aussi simple xD

Je cherchais une utilisation plus compliqué au vu des examples peu pertinent que j'avais trouvé :/

Et pour wordwrap tu as une idée de ce qu'elle fait exactement ?
Elle casse les lignes tous les X caractères si j'ai bien compris ?
ThisGuyIsAwesome - 22 août 2011 à 18:42
Merci, ric !
Ajouter un commentaire
Réponse
+1
moins plus
Bonjour,

CITE: "si je rentre ce texte dans une base de donnée mysql tel quel..."

Si l'utilisateur effectue des retours à la ligne, ils seront enregistrés en BDD. Ces caractères sont respectivement \n et \r (et selon le système utilisateur seulement \n).

Si vous faites simplement:

Exemple:

$str = "C'est un retour\nà la ligne";

echo $str

affichera

C'est un retour à la ligne

mais faites clic-droit et affichage source, vous retrouverez dans le code HTML ceci:

C'est un retour
à la ligne

Le \n a bien été exécuté.

En HTML, le \n ne sera pas visible dans une page web. Pour le voir, en dehors d'un textarea, il faut faire ceci:

echo str_replace("\n","<br/>", $str);

Pour récupérer $str dans un textarea:

<textarea><?php echo $str; ?></textarea>

et on retouve ceci

C'est un retour
à la ligne

Il faut éviter les manips avant stockage en BDD. Il est préférable de garder la chaîne telle qu'elle a été saisie et ne la modifier que pour un éventuel affichage.

Cdlt
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

J'aimerai faire exactement la meme chose mais en javascript.

J'essai de decouper un champ textarea en chaines de caracteres, chaque ligne equivault à une chaine de carartere.

J'essau d'utiliser la fonction split avec une regexp mais ca n'est pas tres concluant ( \n ou $ ne match pas)

Quelqu'un a t'il une idée ? Merci d'avance.

Fla
fady005- 20 janv. 2010 à 17:27
Ben il disait juste qu'il avait trouvé la réponse.
yop - 15 févr. 2011 à 15:27
...
Nat - 30 juin 2011 à 15:11
Petit deterrage annuel
Ajouter un commentaire
Réponse
+0
moins plus
J'ai le même problème mais dans le sens inverse je voudrait pouvoir modifier des données préalablement rentré dans un textarea. J'utilise la fonction nl2br pour la conversion des retours chariot du textarea dans la bdd, mais maintenant je voudrait que le contenu du textarea retrouve ces retour chariot quand je charge son contenu, car ca m'affiche : "Mon contenu<br />etc<br />"
au lieu de "Mon contenu
etc"

Malheureusement il n'y a pas de br2nl!!

Si quelqu'un avait une idée.

Merci
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour

J'utilise la fonction nl2br pour la conversion des retours chariot du textarea dans la bdd,
C'est là l'erreur !
il faut utiliser mysql_escape_string qui est fait pour entrer les données dans la base , et jamais les nl2br, htmlentities ou autres addslashes qu'on voit souvent.
charlyaexae - 26 févr. 2010 à 12:02
il faut utiliser mysql_escape_string qui est fait pour entrer les données dans la base

sauf que cette fonction est périmée depuis belle lurette... elle a été remplacée par mysql_real_escape_string...

et je ne vois pas pourquoi c'est une erreur d'utiliser les addslashes(), htmlentities()... ???
peut-être que tu peux nous en dire plus ?
Ajouter un commentaire
Ce document intitulé « textarea et retour à la ligne » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?