Page 1 sur 1

Je ne veux pas de sauts de ligne !

Posté : 23 déc. 2008, 11:51
par yakou32
Bonjour :D

Alors voilà mon soucis.
Je fais une boucle PHP do while pour générer du texte.
Jusqu'ici, rien d'original.
Mais notez que dans le code source affiché par le navigateur, des sauts de ligne se glissent à la fin de chaque boucle.
Après tout, le code source n'en est que plus lisible...

Seulement, là où ça ne me convient plus, c'est quand cette chaîne de caractères doit être passé dans du javascript ; dans cette configuration, les sauts de ligne code source générés par PHP plantent le javascript !

Savez-vous comment supprimer les sauts de ligne en code source générés par la boucle do while ?

En vous remerciant :D

Posté : 23 déc. 2008, 11:55
par guilt92
Bonjour,

Pourrais tu nous montrer la boucle dont tu parles ?

Car d'une part une boucle ne génère pas de sauts de ligne tout seul, d'autre part les sauts de ligne du code source ne sont pas les même que ceux affichés à l'écran, il faudrait que tu précises peut etre le probleme...

Ton code js sert a quoi ? A afficher quelque chose et il y a des sauts de lignes ??

Posté : 23 déc. 2008, 12:07
par yakou32
le problème vient des sauts de ligne code source coté navigateur, pas des sauts de ligne écran.

Voilà un bout de code JS+PHP :

Code : Tout sélectionner

var newtext="<?php do { echo '<b>'.$row_comments['auteur'].'</b>, le '.$row_comments['date'].'<br/>'.$row_comments['texte']; } while ($row_comments = mysql_fetch_assoc($comments)); ?>"; document.getElementById("texte").innerHTML = newtext;
Si je remplace mon code PHP par une valeur statique :
ceci fonctionne :

Code : Tout sélectionner

var newtext="<p>hello</p><p>world</p>";
et ceci ne fonctionne pas :

Code : Tout sélectionner

var newtext="<p>hello</p> <p>world</p>";
Or la boucle PHP engendre un code du second type...

____________________

OK, j'ai trouvé la soluce dans un comment de la doc PHP :
It seems that new lines break the string in JavaScript, so if this is your case use the following code instead nl2br

$str = preg_replace('#\r?\n#', '<br />', $str);

Slavi
Merci tout de même pour le coup de pouce !