Affichage d'1 var sur 1 ligne - PHP - Programmation
Marsh Posté le 20-03-2005 à 16:50:42
Il existe pas une fonction qui permet d'afficher une variable sur une ligne? moi j'ai rien trouver et je cherche encore...
parce qu'en fait je sors le texte d'une base de donnée, je la transforme avec n1br2() et ensuite elle est sur plusieurs lignes...
Marsh Posté le 20-03-2005 à 17:01:01
nl2br tu veux dire
cete te sort une chaine sur une seul ligne, sans \n...
Marsh Posté le 20-03-2005 à 17:36:31
Oui je voulais parlé de nl2br... dsl!
Ben en fait le texte au départ il est dans une base de donnée... ce texte est entré par un formulaire donc c'est dès le départ qu'il y a plusieurs ligne... c'est pas possible de le "redresser" en une seule ligne?
Marsh Posté le 20-03-2005 à 17:37:42
bha nl2br fait ca
regarde la source...
Marsh Posté le 20-03-2005 à 17:43:04
Ben non il fait pas ça...
j'ai une variable $affichage avec le texte qui était dans la base de donnée...
ensuite je fais ceci:
$affichage = nl2br($affichage);
et après dans mon script javascript:
var texteCorps = \"$affichage\";
(A noter que tous mon script javascript et dans echo "" )
Mais quand j'affiche la source côté client de mon site j'ai ça:
var texteCorps =texte <br />
texte <br />
ect";
et ça fait foiré tout le code parce que ce n'est pas sur une seul ligne... :-(
Marsh Posté le 20-03-2005 à 17:44:25
bin au lieu faire un nl2br
fait un str_replace("\n","",$affichage);
Marsh Posté le 20-03-2005 à 18:00:30
ça fonctionne pas...
Je commence depuis le tous départ:
J'ai un formulaire avec un champ texterea. Dedans j'écris un texte avec des "à la ligne" un truc du style:
Blablabla
bla
blabla!
Ce formulaire ajoute ce texte dans une base de donnée.
Ensuite je récupère ce texte et le met dans une variable $affichage.
j'aimerais que quand j'affiche cette variable il y ait les <br /> à la place des "à la ligne" alors jutilise la fonction nl2br($affichage)
maintenant si je fai un simple echo $affichage;
je vois ceci:
Blablabla
bla
blabla!
et dans la source ceci:
Blablabla<br />
bla<br />
blabla!
Ensuite je prend cette variable et je la met dans une variable javascript (mon script javascript est dans un echo)
ce qui donne:
echo " debut du script
var texteCorps = \"$affichage\"
fin du script ";
maintenant quand je vais voir dans la source côté client:
var texteCorps = "Blablabla<br />
bla<br />
blabla!"
et ça fait foirer tous le script!!!
et ça doit être comme ça pour que ça fonctionne:
var texteCorps = "Blablabla<br />bla<br />blabla!"
Voilà mon problème dans les détails! et je sais pas comment faire...
Merci pour tout!
Marsh Posté le 20-03-2005 à 18:08:14
Comme dis plus haut :
str_replace("\n","<br>",$affichage);
Marsh Posté le 20-03-2005 à 18:11:17
ça ne fonctionne pas... dans la source ça me met ça:
vat texteCorps = ""
Bizard...
En fait ce qui faut c'est que ça soit dans la source que ça s'affiche sur une seul ligne... pas sur la page! Oh lala... c'est compliqué!
Marsh Posté le 20-03-2005 à 18:15:20
Cette fonction est à utiliser à la place de nl2br.
Donc plus aucune raison d'avoir des retours chariot dans ton fichier.
Marsh Posté le 20-03-2005 à 18:46:44
mais après ça ne sera pas afficher avec des retour à la lignes sur la page html?
Marsh Posté le 20-03-2005 à 18:54:48
Cette fonction remplace ce que tu veux par ce que tu veux.
Avec ce que je t'ai dit, ca remplace le retour chariot du fichier texte en retour chariot html, alors que la fonction nl2br te donne les deux.
Marsh Posté le 20-03-2005 à 19:00:28
ben ça marche pas... je sais 'suis chiant mais n'empêche ça marche pas!
Le truc que vous me donné ça marche sur la page html ça m'affiche comme je veux! (si je fais un simple echo)
Mais dans la source ça m'affiche toujours sur plusieur ligne ce qui fait TOUJOURS FOIRER MON SCRIPT... j'en ai marre... :-(
En tous cas merci pour vos aides!!!!!
Marsh Posté le 20-03-2005 à 19:09:51
Je vais essayé d'être encore plus concret:
Voilà mon code:
Code :
|
et maintenant voilà ce qui est dans la source côté client:
Code :
|
et pour que ça marche il faudrait que ça soit sur une seul ligne dans la source!
Marsh Posté le 20-03-2005 à 19:12:15
Je suis pas très à l'aise en prog non plus.
Faut peut être réatribuer le résultat à ta variable.
$affichage = str_replace("\n","<br>",$affichage);
echo $affichage;
Edit : Bon bah t'as tout fait comme il faut, je sais pas, je passe .
Marsh Posté le 20-03-2005 à 19:17:27
on te l'a déjà dit : nl2br
mais t'as meme pas de logique dans ton code : tu veux remplacer les retours à la ligne par des <br> AVANT de lancer ton JS alors qu'il faut faire le remplacement APRES pour conserver $annonces_txt 'en ligne'
c'est pas difficile !
précision : les \n en bdd ne sont pas 'visible' dans ta chaine, alors qu'ils doivent l'etre ds la variable JS pour avoir un retour à la ligne :
avant le JS tu mets
$tavar = str_replace("\n",'\n',$tavar)
ce qui a pour influence de remplacer un retour à la ligne par les caracteres \ et n
probleme résolu
Code :
|
Marsh Posté le 20-03-2005 à 19:57:45
non pas le problème n'est pas résolu...
Déjà avant de faire quoique ce soit sur ma variable et que je l'affiche, dans la source elle est déjà en plusieurs ligne, par contre elle s'affiche sur la page en une ligne...
Marsh Posté le 20-03-2005 à 20:08:25
ce qu'il y a c'est que dès le départ ma variable est en plusieur ligne... dès que je la récupère de la base de données...
Marsh Posté le 20-03-2005 à 21:20:54
j'ai essayé de remplacé juste après le formulaire (avant de mettre dans ma base) le \n par un autre caractère:
$envoi = str_replace("\n","§",$envoi);
si j'avais ça dans mon champ texte de mon formulaire:
bla bla bla
bla bla
ensuite quand j'affiche ma variable dans la source ça me donne ça:
bla bla bla
§bla bla
et sur la page internet:
bla bla bla §bla bla
Pourquoi il est obligé d'afficher dans la source avec des retour de chariot... c'est vrai!!!! :-(
Marsh Posté le 20-03-2005 à 21:20:57
g_bu a écrit : ce qu'il y a c'est que dès le départ ma variable est en plusieur ligne... dès que je la récupère de la base de données... |
tu portes bien ton pseudo toi
ma proposition marche tres bien :
ta source est en plusieurs ligne : ca j'avais bien compris, pas pour rien que j'ai mis
$affichage = str_replace("\n",'\n',$annonces_txt);
(j'ai cité plus haut ce que ca fait : remplacer les sauts de ligne par les caracteres \n)
si ca passe pas essaye "\r\n"
Marsh Posté le 20-03-2005 à 21:22:43
ouais d'accord avec toi... le problème mnt quand je fais ça dans le source c'est écrit ça:
bla bla bla
\nblab bla
\nbla bla
je comprend plus rien... moi aussi i me semblait que ça marchait ta proposition!
Marsh Posté le 20-03-2005 à 21:23:37
g_bu a écrit : ouais d'accord avec toi... le problème mnt quand je fais ça dans le source c'est écrit ça: |
dans le script JS ?
t'as essayé "\r\n" ?(edité plus haut)
Marsh Posté le 20-03-2005 à 21:24:11
Et ouais... ou si je fais un echo de la variable dans la source ben c'est comme ça!
Marsh Posté le 20-03-2005 à 21:25:40
arf ! j'avais pas vu que tu voulais te servir de ta variable pr une popup : le \n doit etre visible ds une chaine si tu t'en sert de boite de dialogue
nl2br() donc...
si t'as encore des retours à la ligne apres(qd meme bizarre), tu les vires avec $tavar = str_replace("\n","",$tavar);
Marsh Posté le 20-03-2005 à 21:33:34
c'est bon... j'ai enfin et pour finir trouver!
j'ai fait ça:
$affichage = str_replace("\r\n","<br />",$annonces_txt);
Merci spike... j'ai pas pensé à \r! (c'est déjà quoi \r précisément?)
MERCI A TOUS!
Marsh Posté le 22-03-2005 à 17:42:23
OUF !
\r c'est le retour chariot
Marsh Posté le 20-03-2005 à 16:38:56
Bonjour à tous!
J'ai une variable PHP qui contient plusieur ligne. Quant on affiche cette variable elle ne s'affiche pas sur une seul ligne!
Le problème c'est que j'utilise cette variable dans un script en Javascript et si cette variable n'est pas affichée en une seule ligne mon script ne fonctionne pas!
Comment faire?
Merci!
---------------
Il ne faut pas se pencher sur le passé, on risquerait de tomber dans l'oublis... (Coluche)