Retour à la ligne auto dans un champ texte
Hors ligneSalva Le 01/08/2006 à 00:51 Profil de Salva Configuration de Salva

Bonjour à tous,


J'ai une page contenant un champ texte ou je saisie donc du texte qui alimente une BD.
J'ai une page contenant un tableau qui récupére le texte dans la BD.

Mais j'ai des problèmes avec le retour à la ligne.

Dans la page ou je saisie.
Il n'y a pas de problème si je fait "Enter" le retour à la ligne s'effectue correctement sur l'affichage, et lorsque je reviens sur cette page de saisie les retour à la ligne sont toujours correcte.

Par contre la page qui récupére le texte dans la BD et qui l'affiche ne tient pas compte des retour à la ligne et affiche tout un deriere l'autre, ce qui fait le retour à la ligne c'est lorsque la ligne de texte est plus grande que le cadre ou elle s'affiche (normal).

Mais si dans le texte saisie, je met en fin de ligne la balise html <br> (qui correspond à un retour à la ligne) là dans la page qui affiche j'ai bien le retour à la ligne.

C'est génant, car le champs texte de saisie est prévu pour permettre au Internaut de saisir du texte. Du coup je suis obligé de leur signaler qu'ils doivent impérativement mettre <br> en fin de ligne c'est un peu pénible.

N'y a t'il pas un script qui interprete automatiquement un retour chariot comme un <br> ?

Merci pour votre aide.

@+
Hors ligneAnthony Le 01/08/2006 à 13:05 Profil de Anthony Configuration de Anthony

Admin
Salut,

lorsque tu stockes ça dans ta base de données, utilise ceci avant :

$texte = str_replace("\n",'<br />',$texte);

//ensuite tu insères ici le texte dans ta base.

a +
--

Hors ligneSalva Le 03/08/2006 à 23:09 Profil de Salva Configuration de Salva

EUh, en fait maintenant ca marche, fallait juste mettre la ligne que tu m'as donné au bon endroit
et ca marche vachement mieux

Bonjour,

Ben ca marche po
Ce qui est bizare, c'est que dans la page ou je saisie et dans la BD les retour chariot sont effectué.
Mais dans la page ou je visulalise ca s'affiche pas comme il faut.

Par exemple :

Si je saisie cela dans la page de saisie

1
12
123
1234
12345
123456
1234567
12345678
123456789

Je retrouve dans ma BD la même chose :

1
12
123
1234
12345
123456
1234567
12345678
123456789

Par contre sur la page de visualisation l'affichage est comme ca :

1 12 123 1234 12345 123456
1234567 12345678 123456789

Je comprends pas pourquoi des retour chariot sont interprétés comme des "espace" et pourquoi je n'ai qu'un retour chariots

Merci de votre aide.

@+
Hors ligneAnthony Le 04/08/2006 à 13:03 Profil de Anthony Configuration de Anthony

Admin
Dans ta base de données tu dois avoir du code html avec des <br /> dedans, si t'as pas ça c'est que t'as mal utilisé ce que je t'ai mis plus haut :)
--

Hors ligneSalva Le 04/08/2006 à 22:38 Profil de Salva Configuration de Salva

Salut,

Non, en fait si je saisie
1
2
3

dans la page de saisie,

je retrouve dans ma base exactement la même chose (sans code html <br>)

1
2
3

La ligne de code que tu m'as donné je l'ai mise dans la page de lecture et sa marche.

@+
Hors ligneAnthony Le 04/08/2006 à 23:58 Profil de Anthony Configuration de Anthony

Admin
Bah quel est le problème alors ?
--

Hors ligneSalva Le 05/08/2006 à 00:50 Profil de Salva Configuration de Salva

Salut,

Ben, y a plus de problème. Sa marche maintenant.
Merci de ton aide.

@+
Hors ligneIonace Le 04/09/2006 à 14:59 Profil de Ionace Configuration de Ionace

juste au cas ou, php propose cette fonction qui realise la meme chose => $Texte = nl2br($Texte)... peut etre utile parfois ^^
Hors ligneAnthony Le 04/09/2006 à 16:30 Profil de Anthony Configuration de Anthony

Admin
En fait cette fonction ne réalise pas vraiment la même chose. nl2br() rajoute des <br /> devant chaque \n, contrairement à un str_replace() qui lui va réellement remplacer les \n par des <br />
--

Hors ligneIonace Le 10/09/2006 à 18:32 Profil de Ionace Configuration de Ionace

Ah oki bah je viens d'apprendre un truc alors ^^ cool ...
Par contre petite precision, par rapport a ton exemple anthony, je voulais preciser a tous ceux qui ont l'ahabitude de voir des ' a la place des " qu'ils ne doivent pas penser qu'il s'agit ici d'une erreur mais bien de l'ecriture adequat (je precise car j'ai eu la reflexion) sinon sa ne fonctionnera pas (str_replace cherchera a remplacer les caracteres '\' + 'n' au lieu d'un retour a la ligne normal...)

@++ tout le monde !!
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels